public ActionResult SaveCode(int taskId) { AjaxStoreResult ajaxStoreResult = new AjaxStoreResult(StoreResponseFormat.Save); try { StoreDataHandler dataHandler = new StoreDataHandler(HttpContext.Request["data"]); ChangeRecords<Code> obj = dataHandler.ObjectData<Code>(); Task task = taskRepository.Get(taskId); foreach (Code code in obj.Updated) { code.Task = task; if (code.IsValid()) { codeRepository.SaveOrUpdate(code); } } foreach (Code code in obj.Created) { code.Task = task; if (code.IsValid()) { codeRepository.SaveOrUpdate(code); } } foreach (Code code in obj.Deleted) { code.Task = task; if (code.IsValid()) { codeRepository.Delete(code); } } codeRepository.DbContext.CommitChanges(); ajaxStoreResult.SaveResponse.Success = true; } catch (Exception e) { ajaxStoreResult.SaveResponse.Success = false; ajaxStoreResult.SaveResponse.ErrorMessage = e.Message; codeRepository.DbContext.RollbackTransaction(); } return ajaxStoreResult; }