/// <summary> /// Добавяне на Номенклатурни индекси /// </summary> /// <returns></returns> public IActionResult AddArchiveIndex() { SetViewBagArchiveIndex(); SetBreadcrumsArchiveIndex(0); CourtArchiveIndexEditVM model = new CourtArchiveIndexEditVM() { CourtId = userContext.CourtId, DateStart = DateTime.Now }; return(View(nameof(EditArchiveIndex), model)); }
public IActionResult EditArchiveIndex(CourtArchiveIndexEditVM model, string caseCodesJson) { SetViewBagArchiveIndex(); List <int> caseCodes = new List <int>(); string errcaseCodes = ""; try { caseCodes = JsonConvert.DeserializeObject <List <int> >(caseCodesJson); } catch (Exception ex) { errcaseCodes = "Проблем със списъка с шифри" + ex.Message; ModelState.AddModelError("caseCodesJson", errcaseCodes); } if (!ModelState.IsValid) { SetBreadcrumsArchiveIndex(model.Id); return(View(nameof(EditArchiveIndex), model)); } var currentId = model.Id; (bool result, string errorMessage) = service.CourtArchiveIndex_SaveData(model, caseCodes); if (result == true) { this.SaveLogOperation(currentId == 0, model.Id); SetSuccessMessage(MessageConstant.Values.SaveOK); return(RedirectToAction(nameof(EditArchiveIndex), new { id = model.Id })); } else { if (string.IsNullOrEmpty(errorMessage)) { errorMessage = MessageConstant.Values.SaveFailed; } SetErrorMessage(errorMessage); } SetBreadcrumsArchiveIndex(model.Id); return(View(nameof(EditArchiveIndex), model)); }
public (bool result, string errorMessage) CourtArchiveIndex_SaveData(CourtArchiveIndexEditVM model, List <int> codeIds) { try { var existsCode = repo.AllReadonly <CourtArchiveIndex>().Where(x => x.CourtId == model.CourtId && x.Id != model.Id && x.Code.ToLower() == model.Code.ToLower()).Any(); if (existsCode == true) { return(result : false, errorMessage : "Вече има въведен индекс този код"); } model.CourtArchiveCommitteeId = (model.CourtArchiveCommitteeId ?? 0) <= 0 ? null : model.CourtArchiveCommitteeId; CourtArchiveIndex saved = null; if (model.Id > 0) { //Update saved = repo.GetById <CourtArchiveIndex>(model.Id); } else { //Insert saved = new CourtArchiveIndex(); saved.IsActive = true; saved.CourtId = model.CourtId; } saved.Label = model.Label; saved.Code = model.Code; saved.CourtArchiveCommitteeId = model.CourtArchiveCommitteeId; saved.StorageYears = model.StorageYears; saved.Description = model.Description; saved.DateStart = model.DateStart; saved.DateEnd = model.DateEnd; if (model.Id > 0) { //Update repo.Update(saved); } else { //Insert repo.Add <CourtArchiveIndex>(saved); } DateTime fromDate = DateTime.Now; DateTime toDate = DateTime.Now.AddSeconds(-1); var codeList = repo.All <CourtArchiveIndexCode>().Where(x => x.CourtArchiveIndexId == model.Id).ToList(); var codeIdsDistinct = codeIds.Distinct().ToList(); codeList.ForEach(x => x.DateTo = toDate); foreach (var itemId in codeIdsDistinct) { var units = codeList.Where(x => x.CaseCodeId == itemId).FirstOrDefault(); if (units != null) { units.DateTo = null; } else { CourtArchiveIndexCode newCode = new CourtArchiveIndexCode(); newCode.CourtArchiveIndexId = saved.Id; newCode.CaseCodeId = itemId; newCode.DateFrom = fromDate; repo.Add <CourtArchiveIndexCode>(newCode); } } repo.SaveChanges(); model.Id = saved.Id; return(result : true, errorMessage : ""); } catch (Exception ex) { logger.LogError(ex, $"Грешка при запис на CourtArchiveIndex Id={ model.Id }"); return(result : false, errorMessage : Helper.GlobalConstants.MessageConstant.Values.SaveFailed); } }