Example #1
0
        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("", "Има активен съдия от групата на делото и добавен съдия от отделение");
                }
            }
        }