Ejemplo n.º 1
0
		public static bool RunByName(TaskContext c, WorkflowNames name)
		{
			bool result = false;
			Workflow wf = Workflow.Load(name);
			result = wf.Run(c);
			return result;
		}
Ejemplo n.º 2
0
        public static bool RunByName(OrderTaskContext c, WorkflowNames name)
        {
            var result = false;
            var wf     = c.HccApp.WorkflowFactory.CreateWorkflow(name);

            result = wf.Run(c);
            return(result);
        }
Ejemplo n.º 3
0
        public static bool RunByName(TaskContext c, WorkflowNames name)
        {
            bool     result = false;
            Workflow wf     = Workflow.Load(name);

            result = wf.Run(c);
            return(result);
        }
Ejemplo n.º 4
0
        public string this[string propertyName]
        {
            get
            {
                string result = string.Empty;
                propertyName = propertyName ?? string.Empty;
                if (LoggingSettings.IsLoggingEnabled && RunPostWorkflow && propertyName == "PostWorkflowName")
                {
                    if (!WorkflowNames.Contains(PostWorkflowName))
                    {
                        result = "Invalid workflow selected";
                    }
                }

                Error = result;
                LoggingSettings.Error = result;
                return(result);
            }
        }
Ejemplo n.º 5
0
        private void LoadWorkflows()
        {
            WorkflowNames.Clear();
            var resources = GetResources();

            foreach (var resource in resources)
            {
                if (LoggingSettings.Workflows.All(wf => wf.ResourceID != resource.ResourceID))
                {
                    resource.IsSelected = LogAll;
                    LoggingSettings.Workflows.Add(resource);
                }
                WorkflowNames.Add(resource.ResourceName);
            }

            //Remove deleted workflows from settings
            foreach (var descriptor in LoggingSettings.Workflows.ToList())
            {
                if (!WorkflowNames.Contains(descriptor.ResourceName))
                {
                    LoggingSettings.Workflows.Remove(descriptor);
                    if (LoggingSettings.PostWorkflow.ResourceName == descriptor.ResourceName)
                    {
                        ClearPostWorkflow();
                    }
                }
            }

            if (LoggingSettings.RunPostWorkflow && LoggingSettings.PostWorkflow != null)
            {
                if (LoggingSettings.Workflows.All(wf => wf.ResourceName != LoggingSettings.PostWorkflow.ResourceName))
                {
                    ClearPostWorkflow();
                }
            }

            UpdateSearchFilter(SearchText);
        }
Ejemplo n.º 6
0
        public virtual Workflow CreateWorkflow(WorkflowNames name)
        {
            Task[] tasks = null;

            switch (name)
            {
            case WorkflowNames.VerifyOrderSize:
                tasks = LoadVerifyOrderSizeTasks();
                break;

            case WorkflowNames.DropShip:
                tasks = LoadDropShipTasks();
                break;

            case WorkflowNames.OrderEdited:
                tasks = LoadOrderEditedTasks();
                break;

            case WorkflowNames.OrderStatusChanged:
                tasks = LoadOrderStatusChangedTasks();
                break;

            case WorkflowNames.PackageShipped:
                tasks = LoadPackageShippedTasks();
                break;

            case WorkflowNames.PaymentChanged:
                tasks = LoadPaymentChangedTasks();
                break;

            case WorkflowNames.PaymentComplete:
                tasks = LoadPaymentCompleteTasks();
                break;

            case WorkflowNames.ProcessNewOrder:
                tasks = LoadProcessNewOrderTasks();
                break;

            case WorkflowNames.ProcessNewOrderPayments:
                tasks = LoadProcessNewOrderPaymentsTasks();
                break;

            case WorkflowNames.ProcessNewOrderAfterPayments:
                // After Payments, notify customer, etc.
                tasks = LoadProcessNewOrderAfterPaymentsTasks();
                break;

            case WorkflowNames.ShippingChanged:
                tasks = LoadShippingChangedTasks();
                break;

            case WorkflowNames.ShippingComplete:
                tasks = LoadShippingCompleteTasks();
                break;

            case WorkflowNames.ThirdPartyCheckoutSelected:
                tasks = LoadThirdPartyCheckoutSelectedTasks();
                break;

            case WorkflowNames.ProcessNewReturn:
                // TODO: Fill in return tasks here
                break;
            }

            return(new Workflow(tasks));
        }
Ejemplo n.º 7
0
        public static BusinessRules.Workflow Load(WorkflowNames name)
        {
            Workflow wf = new Workflow();
            switch (name)
            {
                case WorkflowNames.CheckoutSelected:
                    wf._Tasks.Add(new OrderTasks.ApplyMinimumOrderAmount());
                    wf._Tasks.Add(new OrderTasks.CheckForOrderMaximums());
                    break;
                case WorkflowNames.DropShip:
                    wf._Tasks.Add(new OrderTasks.RunAllDropShipWorkflows());
                    break;
                case WorkflowNames.OrderEdited:
                    break;
                case WorkflowNames.PackageShipped:
                    break;
                case WorkflowNames.PaymentChanged:
                    wf._Tasks.Add(new OrderTasks.RunWorkFlowIfPaid());
                    wf._Tasks.Add(new OrderTasks.MarkCompletedWhenShippedAndPaid());
                    wf._Tasks.Add(new OrderTasks.ChangeOrderStatusWhenPaymentRemoved());
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    break;
                case WorkflowNames.PaymentComplete:
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    wf._Tasks.Add(new OrderTasks.IssueGiftCertificates());
                    wf._Tasks.Add(new OrderTasks.IssueRewardsPoints());
                    wf._Tasks.Add(new OrderTasks.RunAllDropShipWorkflows());
                    break;
                case WorkflowNames.ProcessNewOrder:
                    // Change in 6.0.50.117
                    //
                    // Instead of receiving payments here, call in separate process.
                    // End this workflow by making order placed
                    wf._Tasks.Add(new OrderTasks.WorkflowNote("Starting Process Order Workflow"));
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());

                    wf._Tasks.Add(new OrderTasks.CheckForZeroDollarOrders());
                    wf._Tasks.Add(new OrderTasks.CreateUserAccountForNewCustomer());
                    wf._Tasks.Add(new OrderTasks.AssignOrderToUser());
                    wf._Tasks.Add(new OrderTasks.AssignOrderNumber());
                    wf._Tasks.Add(new OrderTasks.MakeOrderAddressUsersCurrentAddress());
                    wf._Tasks.Add(new OrderTasks.UpdateLineItemsForSave());
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    wf._Tasks.Add(new OrderTasks.MakePlacedOrder());
                    wf._Tasks.Add(new OrderTasks.WorkflowNote("Finished Process Order Workflow"));
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    break;
                case WorkflowNames.ProcessNewOrderPayments:
                    // Receive Payments and throw error if needed
                    //wf._Tasks.Add(new OrderTasks.DebitGiftCertificates());
                    wf._Tasks.Add(new OrderTasks.WorkflowNote("Starting Process Payment Workflow"));
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    wf._Tasks.Add(new OrderTasks.ReceivePaypalExpressPayments());
                    wf._Tasks.Add(new OrderTasks.ReceiveCreditCards());
                    wf._Tasks.Add(new OrderTasks.ReceiveRewardsPoints());
                    wf._Tasks.Add(new OrderTasks.WorkflowNote("Finished Process Payment Workflow"));
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    break;
                case WorkflowNames.ProcessNewOrderAfterPayments:
                    // After Payments, notify customer, etc.
                    wf._Tasks.Add(new OrderTasks.WorkflowNote("Starting Order After Payment Workflow"));
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    wf._Tasks.Add(new OrderTasks.LocalFraudCheck());
                    wf._Tasks.Add(new OrderTasks.RunWorkFlowIfPaid());
                    wf._Tasks.Add(new OrderTasks.MarkCompletedWhenShippedAndPaid());
                    wf._Tasks.Add(new OrderTasks.EmailOrder("Customer"));
                    wf._Tasks.Add(new OrderTasks.EmailOrder("Admin"));
                    wf._Tasks.Add(new OrderTasks.WorkflowNote("Finished Order After Payment Workflow"));
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    break;
                case WorkflowNames.ShippingChanged:
                    wf._Tasks.Add(new OrderTasks.MarkCompletedWhenShippedAndPaid());
                    wf._Tasks.Add(new OrderTasks.ChangeOrderStatusWhenShipmentRemoved());
                    wf._Tasks.Add(new OrderTasks.UpdateOrder());
                    wf._Tasks.Add(new OrderTasks.RunShippingCompleteWorkFlow());
                    break;
                case WorkflowNames.ShippingComplete:
                    wf._Tasks.Add(new OrderTasks.EmailShippingInfo());
                    break;
                case WorkflowNames.ThirdPartyCheckoutSelected:
                    wf._Tasks.Add(new OrderTasks.StartPaypalExpressCheckout());
                    break;
            }

            return wf;
        }
Ejemplo n.º 8
0
        public static BusinessRules.Workflow Load(WorkflowNames name)
        {
            Workflow wf = new Workflow();

            switch (name)
            {
            case WorkflowNames.CheckoutSelected:
                wf._Tasks.Add(new OrderTasks.ApplyMinimumOrderAmount());
                wf._Tasks.Add(new OrderTasks.CheckForOrderMaximums());
                break;

            case WorkflowNames.DropShip:
                wf._Tasks.Add(new OrderTasks.RunAllDropShipWorkflows());
                break;

            case WorkflowNames.OrderEdited:
                break;

            case WorkflowNames.PackageShipped:
                break;

            case WorkflowNames.PaymentChanged:
                wf._Tasks.Add(new OrderTasks.RunWorkFlowIfPaid());
                wf._Tasks.Add(new OrderTasks.MarkCompletedWhenShippedAndPaid());
                wf._Tasks.Add(new OrderTasks.ChangeOrderStatusWhenPaymentRemoved());
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                break;

            case WorkflowNames.PaymentComplete:
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                wf._Tasks.Add(new OrderTasks.IssueGiftCertificates());
                wf._Tasks.Add(new OrderTasks.IssueRewardsPoints());
                wf._Tasks.Add(new OrderTasks.RunAllDropShipWorkflows());
                break;

            case WorkflowNames.ProcessNewOrder:
                // Change in 6.0.50.117
                //
                // Instead of receiving payments here, call in separate process.
                // End this workflow by making order placed
                wf._Tasks.Add(new OrderTasks.WorkflowNote("Starting Process Order Workflow"));
                wf._Tasks.Add(new OrderTasks.UpdateOrder());

                wf._Tasks.Add(new OrderTasks.CheckForZeroDollarOrders());
                wf._Tasks.Add(new OrderTasks.CreateUserAccountForNewCustomer());
                wf._Tasks.Add(new OrderTasks.AssignOrderToUser());
                wf._Tasks.Add(new OrderTasks.AssignOrderNumber());
                wf._Tasks.Add(new OrderTasks.MakeOrderAddressUsersCurrentAddress());
                wf._Tasks.Add(new OrderTasks.UpdateLineItemsForSave());
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                wf._Tasks.Add(new OrderTasks.MakePlacedOrder());
                wf._Tasks.Add(new OrderTasks.WorkflowNote("Finished Process Order Workflow"));
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                break;

            case WorkflowNames.ProcessNewOrderPayments:
                // Receive Payments and throw error if needed
                //wf._Tasks.Add(new OrderTasks.DebitGiftCertificates());
                wf._Tasks.Add(new OrderTasks.WorkflowNote("Starting Process Payment Workflow"));
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                wf._Tasks.Add(new OrderTasks.ReceivePaypalExpressPayments());
                wf._Tasks.Add(new OrderTasks.ReceiveCreditCards());
                wf._Tasks.Add(new OrderTasks.ReceiveRewardsPoints());
                wf._Tasks.Add(new OrderTasks.WorkflowNote("Finished Process Payment Workflow"));
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                break;

            case WorkflowNames.ProcessNewOrderAfterPayments:
                // After Payments, notify customer, etc.
                wf._Tasks.Add(new OrderTasks.WorkflowNote("Starting Order After Payment Workflow"));
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                wf._Tasks.Add(new OrderTasks.LocalFraudCheck());
                wf._Tasks.Add(new OrderTasks.RunWorkFlowIfPaid());
                wf._Tasks.Add(new OrderTasks.MarkCompletedWhenShippedAndPaid());
                wf._Tasks.Add(new OrderTasks.EmailOrder("Customer"));
                wf._Tasks.Add(new OrderTasks.EmailOrder("Admin"));
                wf._Tasks.Add(new OrderTasks.WorkflowNote("Finished Order After Payment Workflow"));
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                break;

            case WorkflowNames.ShippingChanged:
                wf._Tasks.Add(new OrderTasks.MarkCompletedWhenShippedAndPaid());
                wf._Tasks.Add(new OrderTasks.ChangeOrderStatusWhenShipmentRemoved());
                wf._Tasks.Add(new OrderTasks.UpdateOrder());
                wf._Tasks.Add(new OrderTasks.RunShippingCompleteWorkFlow());
                break;

            case WorkflowNames.ShippingComplete:
                wf._Tasks.Add(new OrderTasks.EmailShippingInfo());
                break;

            case WorkflowNames.ThirdPartyCheckoutSelected:
                wf._Tasks.Add(new OrderTasks.StartPaypalExpressCheckout());
                break;
            }

            return(wf);
        }