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