Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }