public ListItemReportColumnFilterViewModel(ListReportColumnFilterViewModel listViewModel, FilterRequestModel filter) : base("Filter", filter)
 {
     // Inicializa las propiedades
     ListViewModel = listViewModel;
     Filter        = filter;
     // Inicializa el viewModel
     InitViewModel();
 }
예제 #2
0
 public NodeColumnViewModel(BaseTreeViewModel trvTree, IHierarchicalViewModel parent, NodeColumnType columnNodeType, string text, DataSourceColumnModel column) :
     base(trvTree, parent, text, Explorers.TreeReportingViewModel.NodeType.ConnectionRoot.ToString(),
          Explorers.TreeReportingViewModel.IconType.Connection.ToString(), column, false, false, MvvmColor.Black)
 {
     // Asigna la columna
     ColumnNodeType = columnNodeType;
     Column         = column;
     // Asigna las propiedades
     if (column == null)             // ... si no es una columna, es una cabecera
     {
         IsBold     = true;
         Foreground = MvvmColor.Red;
     }
     else             // ... es una columna, le asigna sus propiedades
     {
         CanSelect = true;
         SortOrder = BaseColumnRequestModel.SortOrder.Undefined;
     }
     // Asigna los filtros
     if (column != null && trvTree is TreeQueryReportViewModel tree)
     {
         FilterWhere  = new ListReportColumnFilterViewModel(tree.ReportViewModel, this);
         FilterHaving = new ListReportColumnFilterViewModel(tree.ReportViewModel, this);
     }
     // Carga el combo
     LoadComboAggregation();
     // Normaliza las propiedades
     NormalizeProperties();
     // Asigna el manejador de eventos
     PropertyChanged += (sender, args) => {
         if (args.PropertyName.Equals(nameof(IsChecked)) && Column != null)
         {
             NormalizeProperties();
         }
     };
     ComboAggregationTypes.PropertyChanged += (sender, args) =>
     {
         if (args.PropertyName.Equals(nameof(ComboViewModel.SelectedItem)) && Column != null)
         {
             NormalizeProperties();
         }
     };
     // Asigna los comandos
     SortOrderCommand = new BaseCommand(_ => UpdateSortOrder(), _ => CanSort)
                        .AddListener(this, nameof(CanSort));
     FilterWhereCommand = new BaseCommand(_ => UpdateFilter(true), _ => CanFilterWhere)
                          .AddListener(this, nameof(CanSort));
     FilterHavingCommand = new BaseCommand(_ => UpdateFilter(false), _ => CanFilterHaving)
                           .AddListener(this, nameof(CanSort));
 }
        /// <summary>
        ///		Obtiene los filtros
        /// </summary>
        private List <FilterRequestModel> GetFilters(ListReportColumnFilterViewModel filtersViewModel)
        {
            List <FilterRequestModel> request = new List <FilterRequestModel>();

            // Añade los filtros
            foreach (ControlItemViewModel item in filtersViewModel.FiltersViewModel)
            {
                if (item is ListItemReportColumnFilterViewModel filterViewModel)
                {
                    request.Add(filterViewModel.Filter);
                }
            }
            // Devuelve los filtros
            return(request);
        }