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); }
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); }
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); }
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); } } }