Empty Available Authorization when using Swashbuckle Swagger .NET 6

When I learned to implement authorization in my WebAPI and tested it in Swagger, I noticed the "Available authorization" page was empty (after clicking the lock icon): Empty Authorization dialog For those who don't know Swagger, you can think of this as a framework that offers a systematic way of notating the interface of any RESTful … Continue reading Empty Available Authorization when using Swashbuckle Swagger .NET 6

Dataverse: Four Ways to Bypass PluginExecution in CrmServiceClient

There is always a scenario in your organization that requires you to bypass PluginExecution (can be workflows or plugins) when doing CRUD (Create, Read, Update, or Delete) operations. Today, we will learn how we can do it in several ways. For this demonstration, I create a Workflow that will be running on Contact when Created: Create Workflow For Contact on … Continue reading Dataverse: Four Ways to Bypass PluginExecution in CrmServiceClient

Dynamics CRM: Implement Retry Policy using Polly

Lately, I'm still actively thinking about designing a system that also considers error-proofing as part of the feature. For example, we want to ensure the transaction that we will execute is successful in 3 times execution. Meaning, we need to implement a retry policy that Polly can handle! I know Polly when I read "How to maximize … Continue reading Dynamics CRM: Implement Retry Policy using Polly

Dataverse Plugin Development: Simplify Your Plugin Code Using This Way!

When creating Dataverse Plugin, sure we always encounter a scenario where we need to retrieve attribute values of the main entity. But we want to take either from Target's attribute or PreImage/PostImage/Database's attribute. For example, if we have an entity (table) that contains Qty, Price, and Total. If the user changed the Qty attribute, we want to calculate the Total using Target.Qty * … Continue reading Dataverse Plugin Development: Simplify Your Plugin Code Using This Way!

Dataverse DevOps: Create Tool for Auto Deployment for WebResource + PluginAssembly

One of the topics I wanted to learn and cover is how to do DevOps in a Dataverse environment. DevOps for me is an operation/process that helps to ensure smooth delivery from developer to operation (end-user). The idea is to remove all the unnecessary/recursive process and automate it so all the stakeholders can focus on … Continue reading Dataverse DevOps: Create Tool for Auto Deployment for WebResource + PluginAssembly

Dynamics CRM Create Plugin Helper: Duplicate Xrm.Utility.getResourceString for Plugin Side

Have you ever use Xrm.Utility.getResourceString?  Xrm.Utility.getResourceString is a function that we can use in the front-end to returns the localized string for a given key associated with the specified web resource. For instance, we can use it for storing localize error messages (for validation purposes). But the problem is we only can use it in the front-end, that … Continue reading Dynamics CRM Create Plugin Helper: Duplicate Xrm.Utility.getResourceString for Plugin Side

Dynamics CRM CE: TDD Plugin Development in Action – Part 2

For the second part of this blog post series, we will create a more advanced scenario operation. We will create business logic for the SalesOrder to calculate total orders (SalesOrder.Amount and Sum of SalesOrderDetail.Quantity) per Customer in 1 month (based on SalesOrder.SubmitDate) with the status of the Order is Invoiced. Remember, we can have multiple ways to solve this scenario. But … Continue reading Dynamics CRM CE: TDD Plugin Development in Action – Part 2

Dynamics CRM CE: TDD Plugin Development in Action – Part 1

This tutorial will show you how to create the Dynamics CRM CE Plugin using the Test-Driven-Development (TDD) process. I try to make this as a series (from Easy, Intermediate, and Advanced). I will not explain about basic of the definition of TDD because there are lots of resources from other seniors that will give you … Continue reading Dynamics CRM CE: TDD Plugin Development in Action – Part 1

Extension for Cleaner Code

The extension method in C#, VB, or F# is a static method that accepts this modifier of TInput. The method can be either void or return value. From MSDN definition, Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type. Extension methods are a special kind of … Continue reading Extension for Cleaner Code

Dependency Injection: SimpleInjector

Dependency Injection is a pattern that has already proven to make ease of our development. I remember a quote that you sure already heard: "Program to an interface, not an implementation". Why is it important to rely on the interface instead of the implementation class? The answer is we can refactor it anytime without breaking all … Continue reading Dependency Injection: SimpleInjector