Ejemplo n.º 1
0
        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 LabResultListComplete)
                    {
                        if (Convert.ToDateTime(item.ASUPLDTE).Date == date.Date)
                        {
                            tempCompleteList.Add(item);
                        }
                    }
                }
            }
            else
            {
                tempCompleteList = LabResultListComplete.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);
        }
Ejemplo n.º 2
0
        internal async void ShowReport(ReportsModel reportsModel)
        {
            try
            {
                var res = LabResultListComplete.Where(x => x.ASREF == reportsModel.ASREF &&
                                                      x.ASYEAR == reportsModel.ASYEAR).FirstOrDefault();
                if (res != null)
                {
                    res.IsViewed = true;
                }

                App.TabbedPage.viewModel.LabCount--;
                App.TabbedPage.viewModel.LabCountVisibility = App.TabbedPage.viewModel.LabCount >= 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 = $"{ApiBase.HttpClientBase.BaseUrl}/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)
                                {
                                    await App.Current.MainPage.Navigation.PushAsync(new PdfPage(response.FileContents));

                                    nativeFileHandler.SaveFile(list[index], 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 = $"{ApiBase.HttpClientBase.BaseUrl}/api/Reports/DownloadReport?refernce={reportsModel.ASREF}";
                                var loader1 = await MaterialDialog.Instance.LoadingDialogAsync("Loading");

                                var pdfModel = await ReportsService.DownloadBytes($"api/Reports/DownloadReportBytes?brch={reportsModel.ASBRCH}&year={reportsModel.ASYEAR}&refernce={reportsModel.ASREF}");

                                await loader1.DismissAsync();

                                if (pdfModel.FileContents != null && pdfModel.FileContents.Length > 1)
                                {
                                    //var pdfByte = HtmlByteToPdfByte(pdfModel.FileContents);
                                    //await App.Current.MainPage.Navigation.PushAsync(new PdfPage(pdfByte));
                                    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)
                        {
                            //var pdfByte = HtmlByteToPdfByte(pdfModel.FileContents);
                            //await App.Current.MainPage.Navigation.PushAsync(new PdfPage(pdfByte));
                            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);
            }
        }