Example #1
0
        /// <summary>
        /// Добавяне на Номенклатурни индекси
        /// </summary>
        /// <returns></returns>
        public IActionResult AddArchiveIndex()
        {
            SetViewBagArchiveIndex();
            SetBreadcrumsArchiveIndex(0);
            CourtArchiveIndexEditVM model = new CourtArchiveIndexEditVM()
            {
                CourtId   = userContext.CourtId,
                DateStart = DateTime.Now
            };

            return(View(nameof(EditArchiveIndex), model));
        }
Example #2
0
        public IActionResult EditArchiveIndex(CourtArchiveIndexEditVM model, string caseCodesJson)
        {
            SetViewBagArchiveIndex();
            List <int> caseCodes    = new List <int>();
            string     errcaseCodes = "";

            try
            {
                caseCodes = JsonConvert.DeserializeObject <List <int> >(caseCodesJson);
            }
            catch (Exception ex)
            {
                errcaseCodes = "Проблем със списъка с шифри" + ex.Message;
                ModelState.AddModelError("caseCodesJson", errcaseCodes);
            }

            if (!ModelState.IsValid)
            {
                SetBreadcrumsArchiveIndex(model.Id);
                return(View(nameof(EditArchiveIndex), model));
            }
            var currentId = model.Id;

            (bool result, string errorMessage) = service.CourtArchiveIndex_SaveData(model, caseCodes);
            if (result == true)
            {
                this.SaveLogOperation(currentId == 0, model.Id);
                SetSuccessMessage(MessageConstant.Values.SaveOK);
                return(RedirectToAction(nameof(EditArchiveIndex), new { id = model.Id }));
            }
            else
            {
                if (string.IsNullOrEmpty(errorMessage))
                {
                    errorMessage = MessageConstant.Values.SaveFailed;
                }
                SetErrorMessage(errorMessage);
            }
            SetBreadcrumsArchiveIndex(model.Id);
            return(View(nameof(EditArchiveIndex), model));
        }
        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);
            }
        }