public List <ReportsModel> SortAndFilter(int checkFilterIndex, int sortFilterIndex, int pageNumber, SelectionRange calendarSelectedDates) { int skipCount = 0; if (pageNumber == 1) { skipCount = 0; } else { var newPageNumber = pageNumber - 1; skipCount = newPageNumber * 20; } List <ReportsModel> tempCompleteList = new List <ReportsModel>(); if (calendarSelectedDates != null && (calendarSelectedDates.StartDate != calendarSelectedDates.EndDate)) { for (var date = calendarSelectedDates.StartDate; date <= calendarSelectedDates.EndDate; date = date.AddDays(1)) { foreach (var item in RadioResultListComplete) { if (Convert.ToDateTime(item.ASUPLDTE).Date == date.Date) { tempCompleteList.Add(item); } } } } else { tempCompleteList = RadioResultListComplete.ToList(); } var totalOutputList = tempCompleteList.OrderBy(s => s.ASREF).Skip(skipCount).Take(20).ToList(); List <ReportsModel> checkFilterdOutputList = new List <ReportsModel>(); if (checkFilterIndex == 0) { CheckFilterIndex = checkFilterIndex; switch (Constants.UserProfile.Role) { case "patient": checkFilterdOutputList = totalOutputList.Where(ss => !String.IsNullOrEmpty(ss.ASPCHKBY)).ToList(); break; case "doctor": checkFilterdOutputList = totalOutputList.Where(ss => !String.IsNullOrEmpty(ss.ASDCHKBY)).ToList(); break; case "agent": checkFilterdOutputList = totalOutputList.Where(ss => !String.IsNullOrEmpty(ss.ASACHKBY)).ToList(); break; case "guarantor": checkFilterdOutputList = totalOutputList.Where(ss => !String.IsNullOrEmpty(ss.ASGCHKBY)).ToList(); break; } } else if (checkFilterIndex == 1) { CheckFilterIndex = checkFilterIndex; switch (Constants.UserProfile.Role) { case "patient": checkFilterdOutputList = totalOutputList.Where(ss => String.IsNullOrEmpty(ss.ASPCHKBY)).ToList(); break; case "doctor": checkFilterdOutputList = totalOutputList.Where(ss => String.IsNullOrEmpty(ss.ASDCHKBY)).ToList(); break; case "agent": checkFilterdOutputList = totalOutputList.Where(ss => String.IsNullOrEmpty(ss.ASACHKBY)).ToList(); break; case "guarantor": checkFilterdOutputList = totalOutputList.Where(ss => String.IsNullOrEmpty(ss.ASGCHKBY)).ToList(); break; } } else if (checkFilterIndex == 2) { CheckFilterIndex = checkFilterIndex; checkFilterdOutputList = totalOutputList.ToList(); } List <ReportsModel> sortedOutputList = new List <ReportsModel>(); if (sortFilterIndex == 0) { SortedIndex = sortFilterIndex; sortedOutputList = checkFilterdOutputList.OrderBy(x => Convert.ToDateTime(x.ASCDTE)).ToList(); } else if (sortFilterIndex == 1) { SortedIndex = sortFilterIndex; sortedOutputList = checkFilterdOutputList.OrderBy(x => Convert.ToDateTime(x.ASRDTE)).ToList(); } else if (sortFilterIndex == 2) { SortedIndex = sortFilterIndex; sortedOutputList = checkFilterdOutputList.OrderBy(x => Convert.ToDateTime(x.ASUPLDTE)).ToList(); } else if (sortFilterIndex == 3) { SortedIndex = sortFilterIndex; switch (Constants.UserProfile.Role) { case "patient": sortedOutputList = checkFilterdOutputList.OrderBy(x => Convert.ToDateTime(x.ASPCHKDTE)).ToList(); break; case "doctor": sortedOutputList = checkFilterdOutputList.OrderBy(x => Convert.ToDateTime(x.ASDCHKDTE)).ToList(); break; case "agent": sortedOutputList = checkFilterdOutputList.OrderBy(x => Convert.ToDateTime(x.ASACHKDTE)).ToList(); break; case "guarantor": sortedOutputList = checkFilterdOutputList.OrderBy(x => Convert.ToDateTime(x.ASGCHKDTE)).ToList(); break; } } else if (sortFilterIndex == 4) { SortedIndex = sortFilterIndex; sortedOutputList = checkFilterdOutputList.ToList(); } // var return(sortedOutputList); }
internal async void ShowReport(ReportsModel reportsModel) { try { var res = RadioResultListComplete.Where(x => x.ASREF == reportsModel.ASREF && x.ASYEAR == reportsModel.ASYEAR).FirstOrDefault(); if (res != null) { res.IsViewed = true; } App.TabbedPage.viewModel.RadioCount--; App.TabbedPage.viewModel.RadioCountVisibility = App.TabbedPage.viewModel.RadioCount >= 0; Task.Run(async() => { var result = await ReportsService.SetSeenReports(Constants.UserProfile.Role, reportsModel.ASBRCH, reportsModel.ASYEAR, reportsModel.ASREF, "Y"); }); } catch (Exception ex) { } try { if (!String.IsNullOrEmpty(reportsModel.ASREF)) { var name = $"{reportsModel.ASBRCH}_{reportsModel.ASYEAR}_{reportsModel.ASREF}"; var loader = await MaterialDialog.Instance.LoadingDialogAsync("Loading"); var result = await ReportsService.GetAttachmentsList(name); await loader.DismissAsync(); if (result.Success) { var list = result.data.ToList(); list.Insert(0, name + ".pdf"); var newList = new List <string>(); foreach (var item in list) { var newIndex = list.IndexOf(item); if (newIndex == 0) { newList.Add("Main Report"); } else { newList.Add($"Attachment {newIndex}"); } } var index = await ShowActionSheet("Select", newList); if (index >= 0) { if (index >= 1) { var nativeFileHandler = DependencyService.Get <INativeFileHandler>(); var url = $"Attachments/{list[index]}"; var loader1 = await MaterialDialog.Instance.LoadingDialogAsync("Loading"); //var bytes = await ReportsService.Download($"/Attachments/{list[index]}");// DownloadPDFAsync(url); //var response = await ReportsService.DownloadFileBytes(ApiBase.HttpClientBase.BaseUrl + $"api/Reports/GetReportAttachment?filename=X_19_19804_01.PDF"); var response = await ReportsService.DownloadFileBytes(ApiBase.HttpClientBase.BaseUrl + $"api/Reports/GetReportAttachment?filename={list[index]}"); await loader1.DismissAsync(); if (response.FileContents != null && response.FileContents.Length > 1) { nativeFileHandler.SaveFile(list[index], response.FileContents); await App.Current.MainPage.Navigation.PushAsync(new PdfPage(response.FileContents)); // await MaterialDialog.Instance.AlertAsync("Report downloaded in your local storage"); } else { await MaterialDialog.Instance.AlertAsync("Cannot download report due to server issue"); } } else { var url = $"api/Reports/DownloadReportBytes?brch={reportsModel.ASBRCH}&year={reportsModel.ASYEAR}&refernce={reportsModel.ASREF}"; var loader1 = await MaterialDialog.Instance.LoadingDialogAsync("Loading"); var pdfModel = await ReportsService.DownloadBytes(url); await loader1.DismissAsync(); if (pdfModel.FileContents != null && pdfModel.FileContents.Length > 1) { await App.Current.MainPage.Navigation.PushAsync(new BrowserPage(pdfModel.FileContents)); } else { await MaterialDialog.Instance.AlertAsync("Report not available"); } } } } else { var url = $"api/Reports/DownloadReportBytes?brch={reportsModel.ASBRCH}&year={reportsModel.ASYEAR}&refernce={reportsModel.ASREF}"; var loader1 = await MaterialDialog.Instance.LoadingDialogAsync("Loading"); var pdfModel = await ReportsService.DownloadBytes(url); await loader1.DismissAsync(); if (pdfModel.FileContents != null && pdfModel.FileContents.Length > 1) { //await App.Current.MainPage.Navigation.PushAsync(new PdfPage(bytes)); await App.Current.MainPage.Navigation.PushAsync(new BrowserPage(pdfModel.FileContents)); } else { await MaterialDialog.Instance.AlertAsync("Report not available"); } } } else { await MaterialDialog.Instance.AlertAsync("Report not available"); } } catch (Exception ex) { await MaterialDialog.Instance.AlertAsync(ex.Message); } }