/// <summary> /// Валидация преди запис на заседание /// </summary> /// <param name="model"></param> /// <returns></returns> private string IsValid(CaseSessionVM model) { if (model.Id < 1) { //if (!lawUnitService.IsExistLawUnitByCase(model.CaseId, model.DateFrom)) //{ // return "Няма активен състав"; //} if (!lawUnitService.IsExistJudgeReporterByCase(model.CaseId, model.DateFrom)) { return("Няма активен съдия докладчик"); } } if (model.SessionTypeId < 0) { return("Няма избран вид"); } if (model.DateFrom == null) { return("Няма въведена начална дата"); } var caseCase = service.GetById <Case>(model.CaseId); if (model.DateFrom < caseCase.RegDate) { return("Не можете да насрочвате заседание с дата/час по-малка от дата/час на регистрация на делото"); } if (model.CourtHallId > 0) { if (model.DateTo_Minutes < 1) { return("Изберете прогнозна продължителност"); } } if (model.DateTo != null) { if (model.DateFrom > model.DateTo) { return("Началната дата/час е по-голяма от крайната дата/час"); } } if (model.SessionStateId == NomenclatureConstants.SessionState.Provedeno) { if (model.DateFrom > DateTime.Now) { return("Не може да отразите проведено заседание с бъдеща дата/час."); } if (caseSessionMeetingService.IsExistMeetengInSessionAfterDate(DateTime.Now, model.Id, null)) { return("Има сесии в това заседание, които не са проведени."); } if (!lawUnitService.IsExistJudgeReporterByCase(model.CaseId, model.DateFrom)) { return("Няма активен съдия докладчик"); } } if (model.SessionStateId == NomenclatureConstants.SessionState.Nasrocheno) { if (model.DateFrom <= DateTime.Now) { return("Не може да насрочвате/коригирате заседание с минала дата/час."); } } var caseSessions = service.CaseSession_OldSelect(model.CaseId, null, null).ToList(); if (caseSessions.Count > 0) { if (caseSessions.Any(x => (x.DateFrom == model.DateFrom) && ((model.Id > 0) ? x.Id != model.Id : true))) { return("Вече има заседание в това дело с тази начална дата/час"); } } if (model.Id > 0) { var caseSessionMeeting = caseSessionMeetingService.CaseSessionMeetingAutoCreateGetBySessionId(model.Id); if (caseSessionMeeting != null) { if (caseSessionMeetingService.IsExistMeetengInSession(model.DateFrom, (model.DateTo ?? model.DateFrom), model.Id, caseSessionMeeting.Id)) { return("Има сесия в това заседание съвпадаща като време с автоматичната сесия"); } } var caseSessionOld = service.GetById <CaseSession>(model.Id); if (model.DateFrom != caseSessionOld.DateFrom) { if (caseNotificationService.IsExistNotificationForSession(model.Id)) { return("Има издадени призовки за това заседание и не може да смените началната дата или залата."); } } if (model.SessionStateId != NomenclatureConstants.SessionState.Nasrocheno) { if (model.SessionTypeId != caseSessionOld.SessionTypeId) { return("Не може да промените вида на заседанието при статус различен от насрочено."); } } } return(string.Empty); }