internal static void ToCountSearchControl(UserQueryEntity uq, CountSearchControl countSearchControl) { var filters = uq.WithoutFilters ? countSearchControl.FilterOptions.ToList() : countSearchControl.FilterOptions.Where(f => f.Frozen).Concat(uq.Filters.Select(qf => new FilterOption { ColumnName = qf.Token.Token.FullKey(), Operation = qf.Operation, Value = Signum.Entities.UserAssets.FilterValueConverter.Parse(qf.ValueString, qf.Token.Token.Type, qf.Operation.IsList()) })).ToList(); var columns = uq.Columns.Select(qc => new ColumnOption { ColumnName = qc.Token.Token.FullKey(), DisplayName = qc.DisplayName.DefaultText(null) }).ToList(); var orders = uq.Orders.Select(of => new OrderOption { ColumnName = of.Token.Token.FullKey(), OrderType = of.OrderType, }).ToList(); countSearchControl.Reinitialize(filters, columns, uq.ColumnsMode, orders); countSearchControl.Text = uq.DisplayName + ": {0}"; countSearchControl.LinkClick += (object sender, EventArgs e) => { Finder.Explore(new ExploreOptions(countSearchControl.QueryName) { InitializeSearchControl = sc => UserQueryClient.SetUserQuery(sc, uq) }); }; }
internal void OpenSubgroup(string dataClicks) { var dic = dataClicks.Split(new[] { '&' }, StringSplitOptions.RemoveEmptyEntries).ToDictionary(a => a.Split('=')[0], a => a.Split('=')[1]); if (!lastRequest.GroupResults) { Lite <Entity> lite = (Lite <Entity>)FilterValueConverter.Parse(dic["entity"], this.Description.Columns.Single(a => a.IsEntity).Type, isList: false); if (Navigator.IsNavigable(lite.EntityType, isSearch: true)) { Navigator.NavigateUntyped(lite, new NavigateOptions()); } } else { var subFilters = lastRequest.KeyColumns.Select(t => new FilterOption(t.Token.FullKey(), FilterValueConverter.Parse(dic["c" + t.Position], t.Token.Type, isList: false))); Finder.Explore(new ExploreOptions(Request.QueryName) { FilterOptions = lastRequest.Filters.Concat(subFilters).ToList(), SearchOnLoad = true, }); } }
private void btnExploreNotes_Click(object sender, RoutedEventArgs e) { var func = CustomFilter.TryGetValue(DataContext.GetType()); var eo = new ExploreOptions(typeof(NoteEntity)) { ShowFilters = false, SearchOnLoad = true, FilterOptions = { func != null ? func((Entity)DataContext) : new FilterOption("Target", DataContext) { Frozen = true }, }, OrderOptions = { new OrderOption("CreationDate", OrderType.Ascending) }, Closed = (_, __) => Dispatcher.Invoke(() => ReloadNotes()) }; if (func == null) { eo.ColumnOptions = new List <ColumnOption> { new ColumnOption("Target") }; eo.ColumnOptionsMode = ColumnOptionsMode.Remove; } Finder.Explore(eo); }
public override void OnSelected(UserQueryOmniboxResult result, Window window) { UserQueryEntity uq = result.UserQuery.RetrieveAndForget(); var query = QueryClient.GetQueryName(uq.Query.Key); Finder.Explore(new ExploreOptions(query) { InitializeSearchControl = sc => UserQueryClient.SetUserQuery(sc, uq) }); }
internal static void Explore(UserQueryEntity userQuery, Entity currentEntity) { var query = QueryClient.GetQueryName(userQuery.Query.Key); Finder.Explore(new ExploreOptions(query) { InitializeSearchControl = sc => { using (userQuery.EntityType == null ? null : CurrentEntityConverter.SetCurrentEntity(currentEntity)) UserQueryClient.SetUserQuery(sc, userQuery); } }); }
public void ShowRow(ResultRow row) { if (row.Table.HasEntities) { Lite <Entity> lite = row.Entity; if (Navigator.IsNavigable(lite.EntityType, isSearch: true)) { Navigator.NavigateUntyped(lite); } } else { var subFilters = lastRequest.GetFilter(row); Finder.Explore(new ExploreOptions(Request.QueryName) { FilterOptions = lastRequest.Filters.Concat(subFilters).ToList(), SearchOnLoad = true, }); } }
public override void OnSelected(DynamicQueryOmniboxResult r, Window window) { Finder.Explore(new ExploreOptions(r.QueryNameMatch.Value) { FilterOptions = r.Filters.Select(f => { FilterType ft = QueryUtils.GetFilterType(f.QueryToken.Type); var operation = f.Operation; if (operation != null && !QueryUtils.GetFilterOperations(ft).Contains(f.Operation.Value)) { MessageBox.Show(window, "Operation {0} not compatible with {1}".FormatWith(operation, f.QueryToken.ToString())); operation = FilterOperation.EqualTo; } object value = f.Value; if (value as string == DynamicQueryOmniboxResultGenerator.UnknownValue) { MessageBox.Show(window, "Unknown value for {0}".FormatWith(f.QueryToken.ToString())); value = null; } else { if (value is Lite <IEntity> ) { Server.FillToStr((Lite <IEntity>)value); } } return(new FilterOption { Token = f.QueryToken, Operation = operation ?? FilterOperation.EqualTo, Value = value, }); }).ToList(), SearchOnLoad = r.Filters.Any(), }); }
private void btnAlerts_Click(object sender, RoutedEventArgs e) { if (DataContext == null) { return; } Entity entity = DataContext as Entity; ResultRow row = (ResultRow)((Button)sender).DataContext; AlertCurrentState state = (AlertCurrentState)row[0]; var func = CustomFilter.TryGetValue(DataContext.GetType()); var eo = new ExploreOptions(typeof(AlertEntity)) { ShowFilters = false, SearchOnLoad = true, FilterOptions = { func != null ? func(entity) : new FilterOption("Target", DataContext) { Frozen = true }, new FilterOption("Entity.CurrentState", state) }, Closed = (o, ea) => Dispatcher.Invoke(() => ReloadAlerts()), }; if (func == null) { eo.ColumnOptions = new List <ColumnOption> { new ColumnOption("Target") }; eo.ColumnOptionsMode = ColumnOptionsMode.Remove; } Finder.Explore(eo); }
public static MenuItem Construct(SearchControl sc, MenuItem plainExcelMenuItem) { MenuItem miResult = new MenuItem { Header = ExcelMessage.Reports.NiceToString(), Icon = ExtensionsImageLoader.GetImageSortName("excel.png").ToSmallImage() }; miResult.AddHandler(MenuItem.ClickEvent, new RoutedEventHandler((object sender, RoutedEventArgs e) => { e.Handled = true; if (e.OriginalSource is MenuItem b) //Not to capture the mouseDown of the scrollbar buttons { Lite <ExcelReportEntity> reportLite = (Lite <ExcelReportEntity>)b.Tag; SaveFileDialog sfd = new SaveFileDialog() { AddExtension = true, DefaultExt = ".xlsx", Filter = ExcelMessage.Excel2007Spreadsheet.NiceToString(), FileName = reportLite.ToString() + " - " + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx", OverwritePrompt = true, Title = ExcelMessage.FindLocationFoExcelReport.NiceToString() }; if (sfd.ShowDialog(Window.GetWindow(sc)) == true) { byte[] result = Server.Return((IExcelReportServer r) => r.ExecuteExcelReport(reportLite, sc.GetQueryRequest(true))); File.WriteAllBytes(sfd.FileName, result); System.Diagnostics.Process.Start(sfd.FileName); } } })); Action initialize = null; MenuItem miAdmin = new MenuItem() { Header = "Administrar", Icon = ExtensionsImageLoader.GetImageSortName("folderedit.png").ToSmallImage() }; miAdmin.Click += (object sender, RoutedEventArgs e) => { var query = QueryClient.GetQuery(sc.QueryName); Finder.Explore(new ExploreOptions(typeof(ExcelReportEntity)) { ShowFilters = false, ShowFilterButton = false, FilterOptions = new List <FilterOption> { new FilterOption { ColumnName = "Query", Operation = FilterOperation.EqualTo, Value = query.ToLite(query.IsNew), Frozen = true } }, Closed = (_, __) => miAdmin.Dispatcher.Invoke(() => initialize()) //Refrescar lista de informes tras salir del administrador }); e.Handled = true; }; initialize = () => { miResult.Items.Clear(); List <Lite <ExcelReportEntity> > reports = Server.Return((IExcelReportServer s) => s.GetExcelReports(sc.QueryName)); if (plainExcelMenuItem != null) { miResult.Items.Add(plainExcelMenuItem); miResult.Items.Add(new Separator()); } miResult.Header = new TextBlock { Inlines = { new Run(ExcelMessage.Reports.NiceToString()), reports.Count == 0? (Inline) new Run(): new Bold(new Run(" (" + reports.Count + ")")) } }; if (reports.Count > 0) { foreach (Lite <ExcelReportEntity> report in reports) { MenuItem mi = new MenuItem() { Header = report.ToString(), Icon = ExtensionsImageLoader.GetImageSortName("excelDoc.png").ToSmallImage(), Tag = report, }; miResult.Items.Add(mi); } } miResult.Items.Add(miAdmin); }; initialize(); return(miResult); }