Example #1
0
        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);
        }
Example #2
0
        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();
        }