public async Task InsertTestData(AppDbContext db) { var userWorkflow = new UserWorkflow( SupportedWorkflows.OnBoarding.ToString(), "*****@*****.**", "test1", 10, new DateTime(2018, 12, 20) ); var personalStep = new UserWorkflowStep(Steps.Personal.ToString()); personalStep.MarkIsStepComplete(true); userWorkflow.AddWorkflowStep(personalStep); var workStep = new UserWorkflowStep(Steps.Work.ToString()); workStep.MarkIsStepComplete(true); userWorkflow.AddWorkflowStep(workStep); var addressStep = new UserWorkflowStep(Steps.Address.ToString()); addressStep.MarkIsStepComplete(true); userWorkflow.AddWorkflowStep(addressStep); var resultStep = new UserWorkflowStep(Steps.Result.ToString()); resultStep.MarkIsStepComplete(true); userWorkflow.AddWorkflowStep(resultStep); userWorkflow.SetPersonal("Jawad", "Hasan", "*****@*****.**"); userWorkflow.SetWork("Code"); userWorkflow.SetAddress("Willy-Brandt-Plataz", "Braunschweig", "38114", "SomeState"); userWorkflow.UpdateStatus(WorkflowStatus.Completed); db.UserWorkflows.Add(userWorkflow); foreach (var step in userWorkflow.Steps) { if (step.TrackingState == TrackingState.Created) { db.Entry(step).State = EntityState.Added; } } await db.SaveChangesAsync(); //_workflowDataService.SaveWorkflowAsync(dbWorkflow); }
private void UpdateWorkflow(BaseWorkflow workflow, UserWorkflow existingUserWorkflow) { //not updating the primary properties e.g. sourceEmailAddress, expiresIn etc. existingUserWorkflow.SetPersonal(workflow.WorkflowData.FirstName, workflow.WorkflowData.LastName, workflow.WorkflowData.Email); existingUserWorkflow.SetWork(workflow.WorkflowData.Work); existingUserWorkflow.SetAddress(workflow.WorkflowData.Street, workflow.WorkflowData.City, workflow.WorkflowData.Zip, workflow.WorkflowData.State); existingUserWorkflow.UpdateStatus(workflow.Status); foreach (var step in existingUserWorkflow.Steps) { if (step.TrackingState == TrackingState.Updated) { _db.Entry(step).State = EntityState.Modified; } } _db.Entry(existingUserWorkflow).State = EntityState.Modified; _db.SaveChanges(); }