/// <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", $"Не може да има бъдеща дата за влизане в законна сила"); } } }