public async Task <IActionResult> Excel(DispObservationSearch search, int page = 1) { try { DispObservationWhereBuilder dispObservationWhereBuilder = new DispObservationWhereBuilder(search); string searchParams = search != default ? search.ToString() : default; List <DispObservationPreviewViewModel> dispObservations = await GetPage(search, dispObservationWhereBuilder, searchParams, page); if (dispObservations == default) { return(BadRequest()); } return(await base.FormatModel <DispObservationPreviewViewModel>(dispObservations, MedicDataLocalization.DispObservations, FormattableFactory)); } catch (Exception ex) { Task <int> _ = MedicLoggerService.SaveAsync(new Log() { Message = ex.Message, InnerExceptionMessage = ex?.InnerException?.Message ?? null, Source = ex.Source, StackTrace = ex.StackTrace, Date = DateTime.Now }); throw; } }
public async Task <IActionResult> Index(DispObservationSearch search, int page = 1) { try { DispObservationWhereBuilder dispObservationWhereBuilder = new DispObservationWhereBuilder(search); string searchParams = search != default ? search.ToString() : default; List <DispObservationPreviewViewModel> dispObservations = await GetPage(search, dispObservationWhereBuilder, searchParams, page); string dispObservationsCountKey = $"{MedicConstants.DispObservations} - {searchParams}"; if (!base.MedicCache.TryGetValue(dispObservationsCountKey, out int dispObservationsCount)) { dispObservationsCount = await DispObservationService .GetDispObservationsCountAsync(dispObservationWhereBuilder); base.MedicCache.Set(dispObservationsCountKey, dispObservationsCount); } List <SexOption> sexOptions = base.GetDefaultSexes(); sexOptions.AddRange(await base.GetSexesAsync()); List <HealthRegionOption> healthRegions = base.GetDefaultHealthRegions(); healthRegions.AddRange(await base.GetHealthRegionsAsync()); return(View(new DispObservationPageIndexModel() { DispObservations = dispObservations, Title = MedicDataLocalization.Get(MedicDataLocalization.DispObservations), Description = MedicDataLocalization.Get(MedicDataLocalization.DispObservations), Keywords = MedicDataLocalization.Get(MedicDataLocalization.DispObservationsSummary), Search = search, CurrentPage = page, TotalPages = base.TotalPages((int)search.Length, dispObservationsCount), TotalResults = dispObservationsCount, Sexes = sexOptions, HealthRegions = healthRegions })); } catch (Exception ex) { Task <int> _ = MedicLoggerService.SaveAsync(new Log() { Message = ex.Message, InnerExceptionMessage = ex?.InnerException?.Message ?? null, Source = ex.Source, StackTrace = ex.StackTrace, Date = DateTime.Now }); throw ex; } }
private async Task <List <DispObservationPreviewViewModel> > GetPage(DispObservationSearch search, DispObservationWhereBuilder dispObservationWhereBuilder, string searchParams, int page) { int pageLength = (int)search.Length; int startIndex = base.GetStartIndex(pageLength, page); string dispObservationsKey = $"{nameof(DispObservationPreviewViewModel)} - {startIndex} - {searchParams}"; if (!base.MedicCache.TryGetValue(dispObservationsKey, out List <DispObservationPreviewViewModel> dispObservations)) { DispObservationHelperBuilder helperBuilder = new DispObservationHelperBuilder(search); dispObservations = await DispObservationService .GetDispObservationsAsync(dispObservationWhereBuilder, helperBuilder, startIndex); base.MedicCache.Set(dispObservationsKey, dispObservations); } return(dispObservations); }