Example #1
0
        /// <summary>
        /// Извличане на данни за дела за унищожаване
        /// </summary>
        /// <param name="courtId"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public IQueryable <CaseArchiveListVM> CaseForDestroy_Select(int courtId, CaseForDestroyFilterVM model)
        {
            DateTime dateFromSearch = model.DateFrom == null?DateTime.Now.AddYears(-100) : (DateTime)model.DateFrom;

            DateTime dateToSearch = model.DateTo == null?DateTime.Now.AddYears(100) : (DateTime)model.DateTo;

            Expression <Func <CaseArchive, bool> > dateSearch = x => true;

            if (model.DateFrom != null || model.DateTo != null)
            {
                dateSearch = x => x.RegDate.AddYears(x.StorageYears).Date >= dateFromSearch.Date && x.RegDate.AddYears(x.StorageYears).Date <= dateToSearch.Date;
            }

            Expression <Func <CaseArchive, bool> > regNumberSearch = x => true;

            if (string.IsNullOrEmpty(model.CaseRegNumber) == false)
            {
                regNumberSearch = x => x.Case.RegNumber.Contains(model.CaseRegNumber);
            }

            int[] caseStateForDestroy = { NomenclatureConstants.CaseState.Archive };

            return(repo.AllReadonly <CaseArchive>()
                   .Where(x => x.Case.CourtId == courtId)
                   .Where(x => caseStateForDestroy.Contains(x.Case.CaseStateId))
                   .Where(x => x.DateDestroy == null)
                   .Where(x => x.RegDate.AddYears(x.StorageYears).Date < DateTime.Now.Date)
                   .Where(dateSearch)
                   .Where(regNumberSearch)
                   .Select(x => new CaseArchiveListVM()
            {
                Id = x.Id,
                CaseId = x.Case.Id,
                CaseTypeLabel = x.Case.CaseType.Code,
                CaseStateLabel = x.Case.CaseState.Label,
                CaseRegNumber = x.Case.RegNumber,
                CaseRegDate = x.Case.RegDate,
                RegNumber = x.RegNumber,
                RegDate = x.RegDate,
                BookNumber = x.BookNumber,
                BookYear = x.BookYear,
                StorageYears = x.StorageYears,
                CaseArchiveIndexName = x.CourtArchiveIndex.Label
            })
                   .AsQueryable());
        }
        public IActionResult ListDataCaseForDestroy(IDataTablesRequest request, CaseForDestroyFilterVM model)
        {
            var data = service.CaseForDestroy_Select(userContext.CourtId, model);

            return(request.GetResponse(data));
        }