Exemple #1
0
 private void ProcessRecurringJobCard(RecurringJobCard RecurringJobCard)
 {
     try
     {
         if (RecurringJobCard.WorkFlowStatus == Ignyt.BusinessInterface.WorkFlow.Enum.WorkFlowStatus.Enabled)
         {
             MyWorkbench.BusinessObjects.Helpers.RecurringHelper.ExecuteRecurring(RecurringJobCard);
         }
     }
     catch (Exception ex)
     {
         this.TaskExceptionList.TaskExceptions.Add(ex);
     }
 }
Exemple #2
0
        public static void ExecuteRecurring(RecurringJobCard RecurringJobCard)
        {
            using (UnitOfWork unitOfWork = new UnitOfWork(RecurringJobCard.Session.DataLayer))
            {
                var myCloner = new DevExpress.Persistent.Base.Cloner();

                RecurringJobCard recurringJobCard = unitOfWork.FindObject <RecurringJobCard>(CriteriaOperator.Parse("Oid == ?", RecurringJobCard.Oid));

                if (recurringJobCard.WorkFlowStatus == WorkFlowStatus.Enabled && (recurringJobCard.NextDate == null || recurringJobCard.NextDate <= MyWorkbench.BaseObjects.Constants.Constants.DateTimeTimeZone(unitOfWork)))
                {
                    JobCard jobCard = new JobCard(unitOfWork);

                    recurringJobCard.CopyProperties(jobCard);
                    jobCard.BookedTime    = recurringJobCard.NextDate != null ? recurringJobCard.NextDate : recurringJobCard.Starting;
                    jobCard.BookedTimeEnd = ((DateTime)jobCard.BookedTime).AddHours(Constants.AppointmentLength(jobCard.Session));
                    jobCard.Party         = recurringJobCard.Party;

                    if (recurringJobCard.Items.Count >= 1)
                    {
                        var j = recurringJobCard.Items.Count;

                        for (int i = 0; i < j; i++)
                        {
                            jobCard.Items.Add(myCloner.CloneTo(recurringJobCard.Items[i], typeof(WorkflowItem)) as WorkflowItem);
                        }
                    }

                    if (recurringJobCard.WorkflowResources.Count >= 1)
                    {
                        var j = recurringJobCard.WorkflowResources.Count;

                        for (int i = 0; i < j; i++)
                        {
                            jobCard.WorkflowResources.Add(myCloner.CloneTo(recurringJobCard.WorkflowResources[i], typeof(WorkflowResource)) as WorkflowResource);
                        }
                    }

                    if (recurringJobCard.Equipment.Count >= 1)
                    {
                        var j = recurringJobCard.Equipment.Count;

                        for (int i = 0; i < j; i++)
                        {
                            jobCard.Equipment.Add(myCloner.CloneTo(recurringJobCard.Equipment[i], typeof(WorkFlowEquipment)) as WorkFlowEquipment);
                        }
                    }

                    recurringJobCard.AdvanceNextDate();

                    // New Object Tracking
                    (jobCard as WorkflowBase).ChildItems.Add(recurringJobCard);
                    (jobCard as WorkflowBase).Tracking.Add(CreateTracking(unitOfWork, jobCard, string.Format("Created from {0}", recurringJobCard.No)));

                    //Current Object Tracking
                    recurringJobCard.ChildItems.Add(jobCard as WorkflowBase);
                    recurringJobCard.Tracking.Add(CreateTracking(unitOfWork, jobCard, string.Format("Converted to {0}", (jobCard as WorkflowBase).GetType().Name)));
                }

                unitOfWork.CommitChanges();
            }
        }