Esempio n. 1
0
        /// <summary>
        /// Валидация преди запис
        /// </summary>
        /// <param name="model"></param>
        private void ValidateCaseEdit(CaseEditVM model)
        {
            if (model.IsOldNumber == true && model.OldDate.HasValue)
            {
                var caseGroup = nomService.GetById <CaseType>(model.CaseTypeId);
                if (!service.CheckCaseOldNumber(caseGroup.CaseGroupId, model.OldNumber, model.OldDate.Value))
                {
                    ModelState.AddModelError("OldNumber", $"Вече съществува дело с номер {model.OldNumber} от дата {model.OldDate:dd.MM.yyyy}");
                }
            }

            if (model.CaseStateId == NomenclatureConstants.CaseState.Rejected)
            {
                //Ако делото е отказано от образуване - следните полета не са задължителни:
                model.CaseCodeId        = 0;
                model.CourtGroupId      = null;
                model.LoadGroupLinkId   = null;
                model.CaseTypeUnitId    = null;
                model.ProcessPriorityId = null;

                if (string.IsNullOrEmpty(model.CaseStateDescription))
                {
                    ModelState.AddModelError("CaseStateDescription", $"Полето 'Основание' е задължително при отказ от образуване.");
                }
            }
            else
            {
                if (model.CaseTypeId <= 0)
                {
                    ModelState.AddModelError("CaseTypeId", $"Изберете 'Точен вид дело'.");
                }

                if (model.CaseCharacterId <= 0)
                {
                    ModelState.AddModelError("CaseCharacterId", $"Изберете 'Характер на дело'.");
                }

                if (model.CaseCodeId <= 0)
                {
                    ModelState.AddModelError("CaseCodeId", $"Изберете 'Шифър'.");
                }

                if ((model.CourtGroupId ?? 0) <= 0)
                {
                    ModelState.AddModelError("CourtGroupId", $"Изберете 'Съдебна група за разпределяне'.");
                }

                if (model.CourtTypeId != NomenclatureConstants.CourtType.VKS && (model.LoadGroupLinkId ?? 0) <= 0)
                {
                    ModelState.AddModelError("LoadGroupLinkId", $"Изберете 'Група по натовареност'.");
                }

                if ((model.CaseTypeUnitId ?? 0) <= 0)
                {
                    ModelState.AddModelError("CaseTypeUnitId", $"Изберете 'Състав по делото'.");
                }

                if ((model.ProcessPriorityId ?? 0) <= 0)
                {
                    ModelState.AddModelError("ProcessPriorityId", $"Изберете 'Вид производство'.");
                }
            }

            if (model.CaseStateId == NomenclatureConstants.CaseState.Deleted)
            {
                if (string.IsNullOrEmpty(model.CaseStateDescription))
                {
                    ModelState.AddModelError("CaseStateDescription", $"Делото е анулирано и е задължително да въведете основание.");
                }
            }

            if (model.CaseInforcedDate != null)
            {
                if (model.Id > 0)
                {
                    var @case = service.GetById <Case>(model.Id);
                    if (model.CaseInforcedDate != null)
                    {
                        if ((model.CaseInforcedDate ?? DateTime.Now).Date < @case.RegDate.Date)
                        {
                            ModelState.AddModelError("CaseInforcedDate", $"Дата на влизане в сила е по-малка от дата на регистрация на делото.");
                        }
                    }
                }
            }

            if (model.CaseStateId == NomenclatureConstants.CaseState.ComingIntoForce)
            {
                if (model.CaseInforcedDate == null)
                {
                    ModelState.AddModelError("CaseInforcedDate", $"Трябва да въведете дата на влизане в законна сила");
                }
            }

            if (model.CaseInforcedDate != null)
            {
                if ((model.CaseInforcedDate ?? DateTime.Now).Date > DateTime.Now.Date)
                {
                    ModelState.AddModelError("CaseInforcedDate", $"Не може да има бъдеща дата за влизане в законна сила");
                }
            }
        }