コード例 #1
0
        public async Task <bool> Create(WorkflowStep WorkflowStep)
        {
            WorkflowStepDAO WorkflowStepDAO = new WorkflowStepDAO();

            WorkflowStepDAO.Id = WorkflowStep.Id;
            WorkflowStepDAO.WorkflowDefinitionId = WorkflowStep.WorkflowDefinitionId;
            WorkflowStepDAO.Code   = WorkflowStep.Code;
            WorkflowStepDAO.Name   = WorkflowStep.Name;
            WorkflowStepDAO.RoleId = WorkflowStep.RoleId;
            WorkflowStepDAO.SubjectMailForReject = WorkflowStep.SubjectMailForReject;
            WorkflowStepDAO.BodyMailForReject    = WorkflowStep.BodyMailForReject;
            DataContext.WorkflowStep.Add(WorkflowStepDAO);
            await DataContext.SaveChangesAsync();

            WorkflowStep.Id = WorkflowStepDAO.Id;
            await SaveReference(WorkflowStep);

            return(true);
        }
コード例 #2
0
        public async Task <bool> BulkMerge(List <WorkflowStep> WorkflowSteps)
        {
            List <WorkflowStepDAO> WorkflowStepDAOs = new List <WorkflowStepDAO>();

            foreach (WorkflowStep WorkflowStep in WorkflowSteps)
            {
                WorkflowStepDAO WorkflowStepDAO = new WorkflowStepDAO();
                WorkflowStepDAO.Id = WorkflowStep.Id;
                WorkflowStepDAO.WorkflowDefinitionId = WorkflowStep.WorkflowDefinitionId;
                WorkflowStepDAO.Code   = WorkflowStep.Code;
                WorkflowStepDAO.Name   = WorkflowStep.Name;
                WorkflowStepDAO.RoleId = WorkflowStep.RoleId;
                WorkflowStepDAO.SubjectMailForReject = WorkflowStep.SubjectMailForReject;
                WorkflowStepDAO.BodyMailForReject    = WorkflowStep.BodyMailForReject;
                WorkflowStepDAOs.Add(WorkflowStepDAO);
            }
            await DataContext.BulkMergeAsync(WorkflowStepDAOs);

            return(true);
        }
コード例 #3
0
        public async Task <bool> Update(WorkflowStep WorkflowStep)
        {
            WorkflowStepDAO WorkflowStepDAO = DataContext.WorkflowStep.Where(x => x.Id == WorkflowStep.Id).FirstOrDefault();

            if (WorkflowStepDAO == null)
            {
                return(false);
            }
            WorkflowStepDAO.Id = WorkflowStep.Id;
            WorkflowStepDAO.WorkflowDefinitionId = WorkflowStep.WorkflowDefinitionId;
            WorkflowStepDAO.Code   = WorkflowStep.Code;
            WorkflowStepDAO.Name   = WorkflowStep.Name;
            WorkflowStepDAO.RoleId = WorkflowStep.RoleId;
            WorkflowStepDAO.SubjectMailForReject = WorkflowStep.SubjectMailForReject;
            WorkflowStepDAO.BodyMailForReject    = WorkflowStep.BodyMailForReject;
            await DataContext.SaveChangesAsync();

            await SaveReference(WorkflowStep);

            return(true);
        }
コード例 #4
0
        private async Task SaveReference(WorkflowDefinition WorkflowDefinition)
        {
            await DataContext.WorkflowStep.Where(s => s.WorkflowDefinitionId == WorkflowDefinition.Id).DeleteFromQueryAsync();

            if (WorkflowDefinition.WorkflowSteps != null)
            {
                List <WorkflowStepDAO> WorkflowStepDAOs = new List <WorkflowStepDAO>();
                foreach (WorkflowStep WorkflowStep in WorkflowDefinition.WorkflowSteps)
                {
                    WorkflowStepDAO WorkflowStepDAO = new WorkflowStepDAO();
                    WorkflowStepDAO.WorkflowDefinitionId = WorkflowDefinition.Id;
                    WorkflowStepDAO.Code   = WorkflowStep.Code;
                    WorkflowStepDAO.Name   = WorkflowStep.Name;
                    WorkflowStepDAO.RoleId = WorkflowStep.RoleId;
                    WorkflowStepDAOs.Add(WorkflowStepDAO);
                }
                await DataContext.WorkflowStep.BulkMergeAsync(WorkflowStepDAOs);

                await DataContext.WorkflowDirection.Where(d => d.WorkflowDefinitionId == WorkflowDefinition.Id).DeleteFromQueryAsync();

                if (WorkflowDefinition.WorkflowDirections != null)
                {
                    List <WorkflowDirectionDAO> WorkflowDirectionDAOs = new List <WorkflowDirectionDAO>();
                    foreach (WorkflowDirection WorkflowDirection in WorkflowDefinition.WorkflowDirections)
                    {
                        WorkflowDirectionDAO WorkflowDirectionDAO = new WorkflowDirectionDAO();
                        WorkflowDirectionDAO.WorkflowDefinitionId = WorkflowDefinition.Id;
                        WorkflowDirectionDAO.FromStepId           = WorkflowStepDAOs.Where(s => s.Name == WorkflowDirection.FromStep.Name).Select(s => s.Id).FirstOrDefault();
                        WorkflowDirectionDAO.ToStepId             = WorkflowStepDAOs.Where(s => s.Name == WorkflowDirection.ToStep.Name).Select(s => s.Id).FirstOrDefault();
                        WorkflowDirectionDAO.CreatedAt            = StaticParams.DateTimeNow;
                        WorkflowDirectionDAO.UpdatedAt            = StaticParams.DateTimeNow;
                        WorkflowDirectionDAOs.Add(WorkflowDirectionDAO);
                    }
                    await DataContext.WorkflowDirection.BulkMergeAsync(WorkflowDirectionDAOs);
                }
            }
        }