コード例 #1
0
        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} броя връзки към групи по натовареност");
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }