private bool migrate_ArchiveIndexCode(MigrationData item) { var data = item.Data.Split('|'); try { var model = new CourtArchiveIndexCode() { DateFrom = DefaultDateFrom }; var index = repo.AllReadonly <CourtArchiveIndex>().Where(x => x.CourtId == item.CourtId && x.Description == item.ParentCode).FirstOrDefault(); int caseCodeId = getCaseCodeByCode(item.Code); if (index != null && caseCodeId > 0) { model.CourtArchiveIndexId = index.Id; model.CaseCodeId = caseCodeId; if (repo.AllReadonly <CourtArchiveIndexCode>() .Where(x => x.CourtArchiveIndexId == model.CourtArchiveIndexId && x.CaseCodeId == model.CaseCodeId).Any()) { item.Message = "Кода се повтаря."; return(true); } repo.Add(model); repo.SaveChanges(); return(true); } else { item.Message = $"Ненамерен индекс с ID = {item.ParentCode} или шифър {item.Code}"; return(false); } } catch (Exception ex) { item.Message = ex.Message; return(false); } }
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); } }