void ValidateModel(CaseSelectionProtokolVM model) { if (model.SelectionModeId == NomenclatureConstants.SelectionMode.ManualSelect && model.Description == null) { ModelState.AddModelError("", "Моля, въведете основание за ръчен избор"); } if (model.SelectionModeId == NomenclatureConstants.SelectionMode.ManualSelect && model.Description != null && NomenclatureConstants.JudgeRole.JuriRolesList.Contains(model.JudgeRoleId)) { if (service.GetActiveLawUnits(model.CaseId).Contains(model.LawUnits.FirstOrDefault().LawUnitId)) { ModelState.AddModelError("", "Съдебният заседател вече е добавен в делото "); } } if (NomenclatureConstants.JudgeRole.JuriRolesList.Contains(model.JudgeRoleId) && model.SelectionModeId != NomenclatureConstants.SelectionMode.ManualSelect) { var jury = service.LawUnit_LoadJury(model.CourtId, model.CaseId, model.SpecialityId); if (jury.Count() == 0) { ModelState.AddModelError("", "Няма повече налични съдебни заседатели"); } } if (NomenclatureConstants.JudgeRole.JuriRolesList.Contains(model.JudgeRoleId)) // if (model.JudgeRoleId == NomenclatureConstants.JudgeRole.Jury || model.JudgeRoleId == NomenclatureConstants.JudgeRole.ReserveJury) { string errorDescription = ""; for (int i = 0; i < model.LawUnits.Count(); i++) { var lawUnit = model.LawUnits[i]; if (lawUnit.StateId == NomenclatureConstants.SelectionProtokolLawUnitState.AddedManually && lawUnit.LawUnitId <= 0) { ModelState.AddModelError($"{nameof(CaseSelectionProtokolVM.LawUnits)}[{i}].{nameof(CaseSelectionProtokolLawUnitVM.LawUnitId)}", "Моля, въведете участник"); } if (lawUnit.StateId == NomenclatureConstants.SelectionProtokolLawUnitState.Exclude && lawUnit.Description == null) { errorDescription = "Моля, въведете причина за неучастие на " + lawUnit.LawUnitFullName; ModelState.AddModelError($"{nameof(CaseSelectionProtokolVM.LawUnits)}[{i}].{nameof(CaseSelectionProtokolLawUnitVM.Description)}", errorDescription); } } } else { string errorDescription = ""; bool hasActiveCourtGroup = false; bool hasCaseGroup = false; for (int i = 0; i < model.LawUnits.Count(); i++) { var lawUnit = model.LawUnits[i]; //Проверява дали има валидни съдии от групата на делото и от някое направление добавени if (lawUnit.CaseGroupId != null) { hasCaseGroup = true; } if (lawUnit.CaseGroupId == null && NomenclatureConstants.SelectionProtokolLawUnitState.ActiveState.Contains(lawUnit.StateId)) { hasActiveCourtGroup = true; } if (lawUnit.StateId == NomenclatureConstants.SelectionProtokolLawUnitState.Exclude && lawUnit.Description == null) { errorDescription = "Моля, въведете причина за неучастие на " + lawUnit.LawUnitFullName; ModelState.AddModelError($"{nameof(CaseSelectionProtokolVM.LawUnits)}[{i}].{nameof(CaseSelectionProtokolLawUnitVM.Description)}", errorDescription); } //if (lawUnit.StateId == NomenclatureConstants.SelectionProtokolLawUnitState.AddedManually && lawUnit.Description == null) //{ // errorDescription = "Моля, въведете причина за ръчен избор на " + lawUnit.LawUnitFullName; // ModelState.AddModelError($"{nameof(CaseSelectionProtokolVM.LawUnits)}[{i}].{nameof(CaseSelectionProtokolLawUnitVM.Description)}", errorDescription); //} } bool hasActiveLawUnit = model.LawUnits.Where(x => NomenclatureConstants.SelectionProtokolLawUnitState.ActiveState.Contains(x.StateId) && x.LawUnitId > 0).Any(); if (hasActiveLawUnit == false) { string idStr = ""; foreach (var item in model.LawUnits) { idStr = idStr + item.LawUnitId.ToString() + ","; } var available_users_in_otherGroups = service.Return_Available_CaseGroup_forAdditionalSelect(idStr, "", model.CaseId); if (available_users_in_otherGroups.Count > 0) { ModelState.AddModelError("", "Въведете поне едно активно лице"); } else { model.IsProtokolNoSelection = true; } } if (hasCaseGroup == true && hasActiveCourtGroup == true) { ModelState.AddModelError("", "Има активен съдия от групата на делото и добавен съдия от отделение"); } } }