public void AssociateChangeHandle() { using (TransactionScope scope = new TransactionScope()) { try { var fields = _scheduleParamsHandler.ConvertToObject(); ViewModel.ScheduledTaskViewModel previousTask = null; foreach (var item in fields) { //if (ValidateAssociateScheduleField(item.Field)) //{ // _associateRepository.UpdateScheduleField(item.AssId, item.Field, item.Value); //} //else //{ // throw new SchedulerException(item.Field + "is not scheduling property, please make sure field has SchedulerEnabled attribute."); //} _associateRepository.UpdateScheduleField(item.AssId, item.Field, item.Value); ViewModel.ScheduledTaskViewModel task = null; if (previousTask == null) { task = this._associateRepository.GetTask(item.TaskId); previousTask = task; } else if (previousTask.TaskId != item.TaskId) { task = this._associateRepository.GetTask(item.TaskId); previousTask = task; } if (previousTask.StartDate.AddMinutes(5) < DateTime.Now) { this._associateRepository.BackDateAssociateChanges(item.AssId, item.Field, item.Value, item.TaskId); } } scope.Complete(); Result = true; } catch (Exception) { throw; } } }