public override Task <Sitecore.Commerce.Plugin.Orders.Order> Run(Sitecore.Commerce.Plugin.Orders.Order arg, CommercePipelineExecutionContext context)
        {
            Contract.Requires(arg != null);
            Contract.Requires(context != null);
            /* STUDENT: Complete this method to set the order number as specified in the requirements */
            Condition.Requires(arg).IsNotNull($"{this.Name}: Order cannot be null");
            OrderPlacedAssignCustomConfirmationIdBlock confirmationOrderIdBlock = this;
            string uniqueOrderId;

            try
            {
                uniqueOrderId = GetUniqueOrderId(context);
            }
            catch (Exception ex)
            {
                context.CommerceContext.LogException((confirmationOrderIdBlock.Name) + "- UniqueOrderIdExcpetion", ex);
                throw;
            }
            arg.OrderConfirmationId = uniqueOrderId;
            return(Task.FromResult <Sitecore.Commerce.Plugin.Orders.Order>(arg));
        }
        public override Task <Sitecore.Commerce.Plugin.Orders.Order> Run(Sitecore.Commerce.Plugin.Orders.Order arg, CommercePipelineExecutionContext context)
        {
            Contract.Requires(arg != null);
            Contract.Requires(context != null);

            OrderPlacedAssignCustomConfirmationIdBlock confirmationIdBlock = this;

            // ISSUE: explicit non-virtual call
            Condition.Requires <Sitecore.Commerce.Plugin.Orders.Order>(arg).IsNotNull <Sitecore.Commerce.Plugin.Orders.Order>((confirmationIdBlock.Name) + ": The order can not be null");
            string uniqueCode = string.Empty;

            try
            {
                uniqueCode = GenerateCustomID(context);
            }
            catch (Exception ex)
            {
                context.CommerceContext.LogException((confirmationIdBlock.Name) + "UniqueIDException", ex);
                throw;
            }
            arg.OrderConfirmationId = uniqueCode;
            return(Task.FromResult <Sitecore.Commerce.Plugin.Orders.Order>(arg));
        }
        public override Task <Sitecore.Commerce.Plugin.Orders.Order> Run(Sitecore.Commerce.Plugin.Orders.Order arg, CommercePipelineExecutionContext context)
        {
            Contract.Requires(arg != null);
            Contract.Requires(context != null);
            /* Block to set the Order Confirmation ID */
            Condition.Requires(arg).IsNotNull($"{this.Name}: The Order cannot be null");
            OrderPlacedAssignCustomConfirmationIdBlock confirmationIdBlock = this;

            /*Unique Code for each order placed*/
            string UniqueCode;

            try
            {
                UniqueCode = GetCustomOrder(context);
            }
            catch (Exception ex)
            {
                context.CommerceContext.LogException((confirmationIdBlock.Name) + "UniqueCodeException", ex);
                throw;
            }
            arg.OrderConfirmationId = UniqueCode;
            return(Task.FromResult <Sitecore.Commerce.Plugin.Orders.Order>(arg));
        }