Exemplo n.º 1
0
        internal static ExtendedDocument MapProperties(ExtendedDocument selected, dynamic model)
        {
            var notAlloewd = typeof(ModelBase <>).GetProperties().Select(z => z.Name).ToList();

            notAlloewd.Add("Series");

            var propsSelected = selected.GetType().GetProperties().Where(z => z.GetCustomAttribute(typeof(DisplayNameAttribute)) != null);
            var propsModel    = (model.GetType().GetProperties() as PropertyInfo[]).Select(z => z.Name);

            var commun = propsSelected.Where(a => propsModel.Contains(a.Name) &&
                                             !notAlloewd.Contains(a.Name) &&
                                             a.CanWrite);

            if (commun != null)
            {
                foreach (var prop in commun)
                {
                    var  propModel    = (model as ExtendedDocument).GetType().GetProperty(prop.Name);
                    Type typeModel    = propModel?.PropertyType;
                    Type typeSelected = prop.PropertyType;
                    if (typeSelected.Equals(typeModel) == true)
                    {
                        prop.SetValue(selected, propModel.GetValue(model));
                    }
                }
            }

            return(selected);
        }
Exemplo n.º 2
0
        public async void OpenScreenAttach(ExtendedDocument screen, string title)
        {
            try
            {
                var c = await DetailViewModel.Create(screen, screen.GetType(), aggre, this);

                c.DisplayName = screen.CollectionName;
                Items.Add(c);
                ActivateItem(c);
            }
            catch (Exception s)
            {
                MessageBox.Show(s.Message);
                return;
            }
        }
Exemplo n.º 3
0
        public PrintWindowViewModel(IEnumerable <dynamic> items)
        {
            Items = items;
            props = new WrapPanel();

            ExtendedDocument one = items.FirstOrDefault();

            if (one != null)
            {
                checkBoxes = new List <CheckBox>();
                var pr = one.GetType().GetProperties();
                foreach (PropertyInfo item in pr)
                {
                    var name    = item.Name;
                    var dispaly = item.GetCustomAttribute(typeof(DisplayNameAttribute)) as DisplayNameAttribute;
                    var column  = item.GetCustomAttribute(typeof(ColumnAttribute)) as ColumnAttribute;

                    if (column != null && (column.FieldType == ModelFieldType.Separation ||
                                           column.FieldType == ModelFieldType.BaseButton ||
                                           column.FieldType == ModelFieldType.Button ||
                                           column.FieldType == ModelFieldType.LienButton ||
                                           column.FieldType == ModelFieldType.OpsButton ||
                                           column.FieldType == ModelFieldType.Table ||
                                           column.FieldType == ModelFieldType.WeakTable
                                           ))
                    {
                        continue;
                    }

                    if (dispaly != null)
                    {
                        name = dispaly.DisplayName;
                    }

                    CheckBox check = new CheckBox();
                    check.Tag        = item;
                    check.Content    = name;
                    check.Margin     = new Thickness(5);
                    check.Checked   += Check_Checked;
                    check.Unchecked += Check_Unchecked;
                    checkBoxes.Add(check);
                    props.Children.Add(check);
                }
            }

            NotifyOfPropertyChange("props");
        }
Exemplo n.º 4
0
        public async Task OpenScreenDetach(ExtendedDocument screen, string title)
        {
            var ioc = DataHelpers.container;
            var vm  = ioc.Get <ViewManager>();
            var c   = await DetailViewModel.Create(screen, screen.GetType(), aggre, this);

            c.DisplayName = screen.CollectionName;
            var content = vm.CreateAndBindViewForModelIfNecessary(c);

            var cc = new ContentControl();

            cc.HorizontalAlignment = HorizontalAlignment.Stretch;
            cc.VerticalAlignment   = VerticalAlignment.Stretch;
            cc.Content             = content;

            GenericWindowViewModel gw = new GenericWindowViewModel(cc, c.DisplayName, screen.Name);

            windowManager.ShowDialog(gw);
        }
Exemplo n.º 5
0
 public async void OpenInstance(ExtendedDocument doc)
 {
     this.OpenScreen(await DetailViewModel.Create(doc, doc.GetType(), aggre, this), $"{doc.CollectionName} - {doc.Name}");
 }