Ejemplo n.º 1
0
 private void AddNewAndEditOldQuestions(Activity activity, CustomDBContext dbContext)
 {
     foreach (var question in activity.Questions)
     {
         var originalQuestion = dbContext.Questions.Find(question.Id);
         if (originalQuestion == null)
         {
             dbContext.Questions.Add(question);
         }
         else
         {
             dbContext.Entry(originalQuestion).CurrentValues.SetValues(question);
         }
     }
 }
Ejemplo n.º 2
0
 private void AddNewAndEditOldFuturePlans(Report report, CustomDBContext dbContext)
 {
     foreach (var futurePlan in report.FuturePlans)
     {
         var originalFuturePlan = dbContext.FuturePlans.Find(futurePlan.Id);
         if (originalFuturePlan == null)
         {
             dbContext.FuturePlans.Add(futurePlan);
         }
         else
         {
             dbContext.Entry(originalFuturePlan).CurrentValues.SetValues(futurePlan);
         }
     }
 }
Ejemplo n.º 3
0
        private void AddNewAndEditOldActivities(Report report, CustomDBContext dbContext)
        {
            foreach (var activity in report.Activities)
            {
                var originalActivity = dbContext.Activities.Find(activity.Id);
                if (originalActivity == null)
                {
                    dbContext.Activities.Add(activity);
                }
                else
                {
                    dbContext.Entry(originalActivity).CurrentValues.SetValues(activity);
                }

                AddNewAndEditOldQuestions(activity, dbContext);
            }
        }
Ejemplo n.º 4
0
        public void Edit(Report report)
        {
            using (var dbContext = new CustomDBContext(connectionString))
            {
                var transaction = dbContext.Database.BeginTransaction();

                //Remove
                RemoveNonexistentActivities(report, dbContext);
                RemoveNonexistentFuturePlans(report, dbContext);

                //Edit and add
                var originalReport = dbContext.Reports.Find(report.Id);
                dbContext.Entry(originalReport).CurrentValues.SetValues(report);

                AddNewAndEditOldActivities(report, dbContext);
                AddNewAndEditOldFuturePlans(report, dbContext);

                transaction.Commit();
                dbContext.SaveChanges();
            }
        }