public override void ExecuteQuery() { ReportFromQueryData.JoinDatatableInQuery(); while (ReportFromQueryData.ThreadExcecuteData.IsAlive) { } ResultDatatable = ReportFromQueryData.ExecuteDataTable; // order column by group -> not group var listColumnOrder = ReportFromQueryData.ListFieldToGroup.ToList(); listColumnOrder.AddUniqueRange(ReportFromQueryData.ListAllFields); ResultDatatable.SetColumnsOrder(listColumnOrder.Select(f => f.FieldName).ToArray()); ResultDatatable.SortByColumns(ReportFromQueryData.ListFieldToGroup.Select(f => f.FieldName).ToArray()); NumFieldToGroup = ReportFromQueryData.ListFieldToGroup.Count; }
public UCInsertSqlQueryViewModel(Action prevAction, Action nextAction) { LoadedCommand = new RelayCommand <UserControl>((p) => { return(p != null); }, (p) => { try { QueriesStackPnl = p.FindName("queriesStackPanel") as StackPanel; } catch (Exception e) { CustomMessageBox.Show("Error while find StackPanel in class UCInsertSqlQueryViewModel\r\n" + e.Message, Cons.TOOL_NAME, MessageBoxButton.OK, MessageBoxImage.Error); } // check null if (QueriesStackPnl == null) { CustomMessageBox.Show("Error while find StackPanel in class UCInsertSqlQueryViewModel\r\n", Cons.TOOL_NAME, MessageBoxButton.OK, MessageBoxImage.Error); } }); AddQueryCommand = new RelayCommand <object>((p) => true, (p) => { var enterQueryWindow = new EnterQueryWindow() { DataContext = new EnterQueryWindowViewModel(), }; var result = enterQueryWindow.ShowDialog(); if (result == true) { MyQuery queryItem = (enterQueryWindow.DataContext as EnterQueryWindowViewModel).QueryItem; var ucQueryItem = new UCQueryItem() { DataContext = new UCQueryItemViewModel(QueriesStackPnl, queryItem), }; QueriesStackPnl.Children.Add(ucQueryItem); } }); LoadQueryCommand = new RelayCommand <object>((p) => true, (p) => LoadQueryFromFile(p)); SaveQueryCommand = new RelayCommand <object>((p) => { return(ListInsertedQuery.Count > 0); }, (p) => { string filter = $"Custom file (*{Cons.REPORT_TEMPLATE_EXTENSION})|*{Cons.REPORT_TEMPLATE_EXTENSION}|All file |*.*"; string filePath = DialogUtils.ShowSaveFileDialog("Save report template to file", filter); if (string.IsNullOrEmpty(filePath)) { return; } var addDataContext = new EditReportTemplateWindowViewModel(ListInsertedQuery) { InputFilePath = filePath }; var editReportTemplateWindow = new EditReportTemplateWindow() { DataContext = addDataContext, }; editReportTemplateWindow.ShowDialog(); if (addDataContext.Result) { ShowSnackbarMessage("Queries file saved successfully"); } else { ShowSnackbarMessage("No such file to save"); } }); PrevCommand = new RelayCommand <object>((p) => true, (p) => prevAction()); NextCommand = new RelayCommand <object>((p) => true, (p) => { if (ListInsertedQuery.Count == 0) { CustomMessageBox.Show("Missing input\r\n\r\nPlease insert at least one query", Cons.TOOL_NAME, MessageBoxButton.OK, MessageBoxImage.Error); } else { ReportFromQueryData.SetListQueries(ListInsertedQuery.OrderBy(x => x.Order).ToList()); nextAction(); } }); }