public bool UpdateWorkflow(WorkflowDC workflow) { Enforce.ArgumentNotNull(workflow, "workflow"); Enforce.ArgumentNotNull(workflow.Id, "workflow.Id"); Enforce.ArgumentNotNull(workflow.StartState, "workflow.StartState"); Enforce.ArgumentNotNull(workflow.DisplayName, "workflow.DisplayName"); Enforce.ArgumentGreaterThanZero(workflow.States.Count, "workflow.States"); var validator = new WorkflowValidation(); ValidationResult results = validator.Validate(workflow); IRepositoryHelper repoHelper = new RepositoryHelper(_connectionString); try { var unitOfWork = new JsonUnitOfWork(_connectionString); var wfRepo = new WorkflowRepository(unitOfWork); var workflowUpdated = wfRepo.Update(workflow.GetWorkflow()); var stateRepo = new StateRepository(unitOfWork); stateRepo.SetWorkflowStates(workflow.Id, workflow.States.ToRepoList()); var actRepo = new StateActivityRepository(unitOfWork); actRepo.SetWorkflowStates(workflow.Id, workflow.Activities.ToRepoList()); var tranRepo = new StateTransitionRepository(unitOfWork); tranRepo.SetWorkflowStates(workflow.Id, workflow.Transitions.ToRepoList()); repoHelper.GetUnitOfWork().SaveChanges(); } catch (Exception ex) { var message = ex.Message; throw; } return(true); }
public WorkflowDC GetWorkflow(string workflowId) { Enforce.ArgumentGreaterThanZero(workflowId, "workflowId"); IRepositoryHelper repoHelper = new RepositoryHelper(_connectionString); WorkflowDC workflowDC = null; try { var wfRepo = repoHelper.GetWorkflowRepository(repoHelper.GetUnitOfWork()); var workflow = wfRepo.Get(workflowId); if (workflow != null) { workflowDC = new WorkflowDC(workflow); var stateRepo = new StateRepository(repoHelper.GetUnitOfWork()); workflowDC.States = stateRepo.GetByWorkflow(workflowId).ToDataContractList(); var actRepo = new StateActivityRepository(repoHelper.GetUnitOfWork()); workflowDC.Activities = actRepo.GetByWorkflow(workflowId).ToDataContractList(); var tranRepo = new StateTransitionRepository(repoHelper.GetUnitOfWork()); workflowDC.Transitions = tranRepo.GetByWorkflow(workflowId).ToDataContractList(); repoHelper.GetUnitOfWork().SaveChanges(); } } catch (Exception ex) { var message = ex.Message; throw; } return(workflowDC); }