Exemplo n.º 1
0
        /// <summary>
        /// Валидация преди запис на сесии към заседание
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private string IsValid(CaseSessionMeetingEditVM model)
        {
            var caseSession = service.GetById <CaseSession>(model.CaseSessionId);

            if (model.DateFrom == null)
            {
                return("Няма въведена начална дата");
            }

            if (model.DateTo != null)
            {
                if (model.DateFrom > model.DateTo)
                {
                    return("Началната дата е по-голяма от крайната");
                }
            }

            if (service.IsExistMeetengInSession(model.DateFrom, model.DateTo, model.CaseSessionId, model.Id))
            {
                return("Има сесия в това заседание съвпадаща като време");
            }

            if (model.IsAutoCreate ?? false)
            {
                if (model.SessionStateId < 1)
                {
                    return("Изберете статус на заседание.");
                }

                if (model.SessionStateId == NomenclatureConstants.SessionState.Provedeno)
                {
                    if (caseSession.DateFrom > DateTime.Now)
                    {
                        return("Не може да отразите проведено заседание с бъдеща дата/час.");
                    }

                    var dateNow = DateTime.Now;
                    if (service.IsExistMeetengInSessionAfterDate(dateNow, caseSession.Id, model.Id) || (model.DateTo >= dateNow))
                    {
                        return("Има сесии в това заседание, които не са проведени.");
                    }
                }

                if (model.SessionStateId == NomenclatureConstants.SessionState.Nasrocheno)
                {
                    if (caseSession.DateFrom <= DateTime.Now)
                    {
                        return("Не може да насрочвате/коригирате заседание с минала дата/час.");
                    }
                }
            }

            return(string.Empty);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Валидация преди запис на сесии към заседание
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private string IsValid(CaseSessionMeetingEditVM model)
        {
            var caseSession = service.GetById <CaseSession>(model.CaseSessionId);

            if (model.DateFrom == null)
            {
                return("Няма въведена начална дата");
            }
            //else
            //{
            //    if (model.DateFrom < caseSession.DateFrom)
            //        return "Началната дата е преди началната дата на заседанието";
            //}

            //if (model.DateFrom >= DateTime.Now)
            //    return "Сесията трябва да е с минала начална дата";

            if (model.DateTo != null)
            {
                //if (model.DateTo >= DateTime.Now)
                //    return "Сесията трябва да е с минала крайна дата";

                if (model.DateFrom > model.DateTo)
                {
                    return("Началната дата е по-голяма от крайната");
                }

                //if (model.DateTo > caseSession.DateTo)
                //    return "Крайната дата е след датата на заседанието";
            }

            if (service.IsExistMeetengInSession(model.DateFrom, model.DateTo, model.CaseSessionId, model.Id))
            {
                return("Има сесия в това заседание съвпадаща като време");
            }

            return(string.Empty);
        }
        /// <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);
        }