public string MigrateLoadGroupLinkFromCourtType(int fromCourtType, int fromInstance, int toCourtType, int toInstance, int[] caseGroups) { var enabledCodes = repo.AllReadonly <CaseTypeCode>() .Include(x => x.CaseType) .Where(x => caseGroups.Contains(x.CaseType.CaseGroupId)) .Select(x => x.CaseCodeId) .ToArray(); var savedLinks = repo.AllReadonly <LoadGroupLink>() .Include(x => x.GroupCodes) .Where(x => x.CourtTypeId == fromCourtType && x.CaseInstanceId == fromInstance) .Where(x => x.GroupCodes.Where(c => enabledCodes.Contains(c.CaseCodeId)).Any()) .ToList(); int i = 0; foreach (var link in savedLinks) { var newLink = new LoadGroupLink() { LoadGroupId = link.LoadGroupId, CourtTypeId = toCourtType, CaseInstanceId = toInstance, LoadIndex = link.LoadIndex, GroupCodes = new HashSet <LoadGroupLinkCode>() }; if (link.GroupCodes != null) { foreach (var code in link.GroupCodes.Where(x => enabledCodes.Contains(x.CaseCodeId))) { var newLinkCode = new LoadGroupLinkCode() { CaseCodeId = code.CaseCodeId }; newLink.GroupCodes.Add(newLinkCode); } } var savedLinkItem = repo.AllReadonly <LoadGroupLink>(). Where(x => x.LoadGroupId == newLink.LoadGroupId && x.CourtTypeId == newLink.CourtTypeId && x.CaseInstanceId == newLink.CaseInstanceId).FirstOrDefault(); if (savedLinkItem != null) { } else { repo.Add(newLink); repo.SaveChanges(); i++; } } return($"Копирани {i} от {savedLinks.Count} броя връзки към групи по натовареност"); }
public bool LoadGroupLink_SaveData(LoadGroupLink model, List <int> caseCodes, ref string errorMessgae) { try { model.CaseInstanceId = (model.CaseInstanceId ?? 0) <= 0 ? null : model.CaseInstanceId; var linkExist = repo.AllReadonly <LoadGroupLink>().Where(x => x.Id != model.Id && x.LoadGroupId == model.LoadGroupId && x.CourtTypeId == model.CourtTypeId && (x.CaseInstanceId ?? 0) == (model.CaseInstanceId ?? 0)).Any(); if (linkExist == true) { errorMessgae = "За тази Група/Вид съд/Инстанция вече има въведен процент"; return(false); } if (model.Id > 0) { //Update var saved = repo.GetById <LoadGroupLink>(model.Id); saved.CourtTypeId = model.CourtTypeId; saved.CaseInstanceId = model.CaseInstanceId; saved.LoadIndex = model.LoadIndex; repo.Update(saved); //Взима всичко за това ид и го трие var loadGroupLinkCode = repo.AllReadonly <LoadGroupLinkCode>().Where(a => a.LoadGroupLinkId == model.Id).ToList(); foreach (var item in loadGroupLinkCode) { repo.Delete <LoadGroupLinkCode>(item); } } else { //Insert repo.Add <LoadGroupLink>(model); } //записва листа със кодовете за loadgrouplinkid foreach (var code in caseCodes) { LoadGroupLinkCode newLoadLinkCode = new LoadGroupLinkCode(); newLoadLinkCode.LoadGroupLinkId = model.Id; newLoadLinkCode.CaseCodeId = code; repo.Add <LoadGroupLinkCode>(newLoadLinkCode); } repo.SaveChanges(); return(true); } catch (Exception ex) { logger.LogError(ex, $"Грешка при запис на LoadGroupLink Id={ model.Id }"); return(false); } }
/// <summary> /// Добавяне на натовареност към група /// </summary> /// <param name="loadGroupId"></param> /// <returns></returns> public IActionResult AddLoadGroupLink(int loadGroupId) { SetBreadcrumsLink(loadGroupId, 0); SetViewbagLoadGroupLink(); var model = new LoadGroupLink() { LoadGroupId = loadGroupId }; return(View(nameof(EditLoadGroupLink), model)); }
public IActionResult EditLoadGroupLink(LoadGroupLink model, string caseCodesJson) { SetViewbagLoadGroupLink(); List <int> caseCodes = new List <int>(); string errCodes = ""; try { caseCodes = JsonConvert.DeserializeObject <List <int> >(caseCodesJson); } catch (Exception ex) { errCodes = "Проблем със списъка с кодове" + ex.Message; ModelState.AddModelError("caseCodesJson", errCodes); } if ((!ModelState.IsValid) || (errCodes != "")) { SetBreadcrumsLink(model.LoadGroupId, model.Id); return(View(nameof(EditLoadGroupLink), model)); } var currentId = model.Id; string errorMessage = ""; if (service.LoadGroupLink_SaveData(model, caseCodes, ref errorMessage)) { this.SaveLogOperation(currentId == 0, model.Id); SetSuccessMessage(MessageConstant.Values.SaveOK); return(RedirectToAction(nameof(EditLoadGroupLink), new { id = model.Id })); } else { if (errorMessage == "") { errorMessage = MessageConstant.Values.SaveFailed; } SetErrorMessage(errorMessage); } SetBreadcrumsLink(model.LoadGroupId, model.Id); return(View(nameof(EditLoadGroupLink), model)); }
private bool migrate_LoadGroup(MigrationData item) { try { var data = item.Data.Split('$'); var groupModel = new LoadGroup() { Code = data[0], Label = data[1], DateStart = DefaultDateFrom, IsActive = true, Description = "migrated", LoadGroupLinks = new HashSet <LoadGroupLink>() }; var linkModel = new LoadGroupLink() { CourtTypeId = int.Parse(data[2]), CaseInstanceId = int.Parse(data[3]), LoadIndex = decimal.Parse(data[4].Replace(",", System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator)), GroupCodes = new HashSet <LoadGroupLinkCode>() }; var codeModel = new LoadGroupLinkCode() { CaseCodeId = int.Parse(data[5]) }; linkModel.GroupCodes.Add(codeModel); groupModel.LoadGroupLinks.Add(linkModel); repo.Add(groupModel); repo.SaveChanges(); return(true); } catch (Exception ex) { item.Message = ex.Message; return(false); } }