Example #1
0
        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;
        }
Example #2
0
        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();
                }
            });
        }