private async Task ExportFunction() { var initInstance = NovaAPI.APIReports.Boxitems; //Create a new List<T> var TestList = new List <NovaAPI.APIReports.BoxitemsClass>(); double Pages = (Convert.ToInt32(NovaAPI.APIReports.Count) / 15); double TotalPages = Math.Floor(Pages); //Get list of all items for (int i = 0; i < TotalPages + 1; i++) { LoadingLabel.Content = $"Obteniendo datos {i + 1} de {TotalPages + 1} paginas..."; //Try to clear existent list try { NovaAPI.APIReports.Boxitems.Clear(); NovaAPI.APIReports.Sellitems.Clear(); } catch (Exception) { } var Data = new NovaAPI.APIReports.RequestData { branch_id = ((NovaAPI.APIBranch.BranchClass)BranchCB.SelectedItem).id, box_id = ((NovaAPI.APIStatus.box)BoxCB.SelectedItem).BoxID.ToString(), date_from = FromDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"), date_to = ToDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"), from = (i * 15).ToString() }; //Create string request string requestData = JsonConvert.SerializeObject(Data); //Send request string requestType = Cache.Cache.SelectedSellReport == "0" ? "1" : "2"; bool Response = await NovaAPI.APIReports.GetValues(requestType, DataConfig.LocalAPI, requestData); if (Response) { TestList.AddRange(NovaAPI.APIReports.Boxitems); } else { MessageBox.Show(NovaAPI.APIReports.Message); return; } await Task.Delay(100); } LoadingLabel.Content = "Generando informe de datos ..."; //Create datatable DataTable dt = new DataTable(); //Asing datatable colummns dt = await ExportModule.ConvertToDataTable(TestList.Select(l => new { NOMBRE = l.name, APERTURA = l.opendate, USUARIO_APERTURA = l.openuser, VALOR_APERTURA = l.openvalue, CIERRE = l.closedate, USUARIO_CIERRE = l.closeuser, VALOR_CIERRE = l.closevalue, COMMENTARIOS = l.comment }).ToList()); //Openfile dialog file path await ExportModule.GenerateExcel(dt, @"C:\Users\nicot\OneDrive\Documentos 1\CPY_SAVES\TOTAL.xls", "TEst"); NovaAPI.APIReports.Boxitems = initInstance; //Restore loading status ReportDock.IsEnabled = true; PaginationGrid.IsEnabled = true; LoadingGrid.Visibility = Visibility.Collapsed; Spinner.Spin = false; LoadingLabel.Content = "Cargando datos"; }
private async void LoadData(string Page = null) { //Set loading grid visibility LoadingGrid.Visibility = Visibility.Visible; Spinner.Spin = true; //Try to clear existent list try { NovaAPI.APIReports.Boxitems.Clear(); NovaAPI.APIReports.Sellitems.Clear(); } catch (Exception) { } //Set data for request var Data = new NovaAPI.APIReports.RequestData { branch_id = ((NovaAPI.APIBranch.BranchClass)BranchCB.SelectedItem).id, box_id = ((NovaAPI.APIStatus.box)BoxCB.SelectedItem).BoxID.ToString(), date_from = FromDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"), date_to = ToDateDT.SelectedDate.Value.ToString("yyyy-MM-dd"), from = Page }; //Create string request string requestData = JsonConvert.SerializeObject(Data); //Send request string requestType = Cache.Cache.SelectedSellReport == "0" ? "1" : "2"; bool Response = await NovaAPI.APIReports.GetValues(requestType, DataConfig.LocalAPI, requestData); if (Response) { //Set data to datagrid if (requestType == "1") { ContentDataGrid.ItemsSource = NovaAPI.APIReports.Boxitems; } else { ContentDataGrid.ItemsSource = NovaAPI.APIReports.Sellitems; } TotalValueLB.Text = requestType == "1" ? "" : string.Format("Venta total: {0:C0} \t Creditos: {1:C0}", NovaAPI.APIReports.Total, NovaAPI.APIReports.Credits); TotalValueLB.Visibility = requestType == "1" ? Visibility.Collapsed : Visibility.Visible; ContentDataGrid.Items.Refresh(); TotalProducts.Content = NovaAPI.APIReports.Count; //Set pagination info double Pages = (Convert.ToInt32(NovaAPI.APIReports.Count) / 15); double TotalPages = Math.Floor(Pages); SetPagination(TotalPages); } else { //Reset pagination data ContentDataGrid.Items.Refresh(); TotalProducts.Content = "0"; TotalValueLB.Text = ""; Pagination = 1; SetPagination(0); MessageBox.Show(NovaAPI.APIReports.Message); //Set loading grid visibility LoadingGrid.Visibility = Visibility.Collapsed; Spinner.Spin = false; return; } await Task.Delay(100); //Set loading grid visibility LoadingGrid.Visibility = Visibility.Collapsed; Spinner.Spin = false; }