private bool migrate_ArchiveIndex(MigrationData item) { var data = item.Data.Split('|'); try { var model = new CourtArchiveIndex() { CourtId = item.CourtId, Code = data[0], Label = data[1], StorageYears = int.Parse(data[2]), Description = item.Code, IsActive = true, DateStart = DefaultDateFrom }; var committee = repo.AllReadonly <CourtArchiveCommittee>().Where(x => x.CourtId == item.CourtId && x.Description == item.ParentCode).FirstOrDefault(); if (committee != null) { model.CourtArchiveCommitteeId = committee.Id; repo.Add(model); repo.SaveChanges(); return(true); } else { item.Message = $"Ненамерена комисия с ID = {item.ParentCode}"; return(false); } } catch (Exception ex) { var error = 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); } }