/// <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)); }