Example #1
0
        // Check if series in database
        public static async void CreateSeries(bool DeleteOldSeries = true)
        {
            if (DeleteOldSeries)
            {
                var oldseries = DS.db.GetAll <SeriesName>(a => true) as IEnumerable <SeriesName>;
                DS.db.DeleteMany(oldseries);
            }

            var modulesWithSeries = DS.db.GetAll <ModuleErp>(a => true) as IEnumerable <ModuleErp>;

            if (modulesWithSeries != null)
            {
                foreach (var module in modulesWithSeries)
                {
                    try
                    {
                        var currentIndex = DS.Generic(module.ClassName)?.Count();//, true);
                        if (currentIndex.HasValue)
                        {
                            CreateSeries(module, currentIndex.Value);
                        }
                    }
                    catch (Exception s)
                    {
                        DataHelpers.Logger.LogError(s);
                        throw s;
                    }
                }
            }
        }
Example #2
0
        public void UpdateDataRefs()
        {
            try
            {
                Type t = DataHelpers.GetTypesModule.Resolve(ClassName);


                var collection = t;                                // Type.GetType(ClassName);
                var items      = DS.Generic(collection)?.GetAll(); // as IEnumerable<IDocument>;
                if (items != null)
                {
                    foreach (IDocument item in items)
                    {
                        item.ForceIgniorValidatUnique = true;
                        if (!(item).Save())
                        {
                            return;
                        }
                    }

                    DataHelpers.ShowMessage("Documents à jour!");
                }
            }
            catch (Exception s)
            {
                DataHelpers.ShowMessageError(s);
            }
        }
Example #3
0
        private void SearchWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            SearchResults = new List <SearchItem>();
            var modules = DataHelpers.ModulesSearch;

            foreach (var item in modules)
            {
                try
                {
                    var className = item.ClassName;
                    var value     = DS.Generic(className)?.Find("NameSearch", SearchMenuText, false);
                    if (value != null)
                    {
                        foreach (IDocument doc in value)
                        {
                            SearchResults.Add(new SearchItem(doc));
                            NotifyOfPropertyChange("SearchResults");
                        }
                    }
                }
                catch
                {
                    continue;
                }
                SearchWorker.ReportProgress(0);
            }
        }
Example #4
0
        public void PopulatePossibleValues()
        {
            // Get possible values
            PossibleValues.Clear();
            var type = GetTypeName(SelectedProeprty.PropertyType);
            HashSet <string> collections = new HashSet <string>();

            foreach (var item in Inputs)
            {
                var val = _SelectedProeprty.GetValue(item, null)?.ToString();
                if (val != null)
                {
                    if (type == "Guid")
                    {
                        try
                        {
                            var attributes = _SelectedProeprty.GetCustomAttribute(typeof(ColumnAttribute)) as ColumnAttribute;
                            var option     = attributes.Options;
                            if (string.IsNullOrWhiteSpace(option) || option.Contains(">") || string.IsNullOrWhiteSpace(val))
                            {
                                continue;
                            }
                            var link = DS.Generic(option)?.GetById(GuidParser.Convert(val));//, true) as IEnumerable<IDocument>;
                            if (link == null)
                            {
                                continue;
                            }
                            collections.Add(link?.Name);
                            StatusLabel = $"{_("Récupération des données")} - {link?.Name}";
                            NotifyOfPropertyChange("StatusLabel");
                        }
                        catch (Exception s)
                        {
                            DataHelpers.ShowMessage(s.Message);
                        }
                    }
                    else
                    {
                        collections.Add(val as string);
                    }
                }
            }
            PossibleValues.AddRange(collections);
            StatusLabel = _($"Términé");
            NotifyOfPropertyChange("StatusLabel");
            NotifyOfPropertyChange("PossibleValues");
        }
Example #5
0
        public void DeleteAll()
        {
            var res = DataHelpers.ShowMessage("Effacer tout ?", "", MessageBoxButton.YesNo);

            if (res == MessageBoxResult.Yes)
            {
                try
                {
                    Type cls = DataHelpers.GetTypesModule.Resolve(this.ClassName);

                    DS.Generic(cls)?.DropCollection();  // DataHelpers.GetGenericData(cls) ;
                    //var metGetCount = (generic.GetType() as Type).GetMethod("Clear");
                    // metGetCount.Invoke(generic, null);
                    DataHelpers.ShowMessage("Terminé");
                }
                catch (Exception s)
                {
                    DataHelpers.ShowMessage(s.Message);
                }
            }
        }
Example #6
0
        //public static bool IsValide(this Guid id)
        //{
        //    if (id.HasValue)
        //        return (id != Guid.Empty && id != null);
        //    return false;
        //}

        public static dynamic GetObject(this Guid id, string model)
        {
            return(DS.Generic(model)?.GetById(id));
        }
Example #7
0
        public void FilterData()
        {
            if (SelectedProeprty == null)
            {
                DataHelpers.ShowMessage(_("Données Insuffisantes"));
                return;
            }

            if (ConditionsSelected == null)
            {
                DataHelpers.ShowMessage(_("Vérifier les conditions"));
                return;
            }
            if (string.IsNullOrEmpty(Valeur))
            {
                Valeur = " ";
                //DataHelpers.ShowMessage("Vérifier les valeurs");
                //return;
            }

            var query = Inputs;

            //var query = new List<IDocument>();
            //query =   ((System.Collections.Generic.List<IDocument>) Inputs) ;
            if (GetTypeName(SelectedProeprty.PropertyType) == "DateTime")
            {
                var _Valeur = DateTime.Parse(Valeur);
                switch (ConditionsSelected.Value)
                {
                case EnumConditions.egale:
                    var result = query.Where(a => (SelectedProeprty.GetValue(a, null) as DateTime?)?.Date == (_Valeur.Date));
                    Result = result.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.ressemble:
                    var resultRes = query.Where(a => (SelectedProeprty.GetValue(a, null) as DateTime?)?.Date == (_Valeur.Date));
                    Result = resultRes.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.déffirent:
                    var resultDef = query.Where(a => !((SelectedProeprty.GetValue(a, null) as DateTime?)?.Date == _Valeur.Date));
                    Result = resultDef.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.inférieur:
                    var resultInf = query.Where(a => (SelectedProeprty.GetValue(a, null) as DateTime?)?.Ticks <= (_Valeur.Ticks));
                    Result = resultInf.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.supérieur:
                    var resultSup = query.Where(a => (SelectedProeprty.GetValue(a, null) as DateTime?)?.Ticks >= (_Valeur.Ticks));
                    Result = resultSup.ToList();
                    Inputs = Result;
                    break;

                default:
                    break;
                }
            }
            if (GetTypeName(SelectedProeprty.PropertyType) == "Int32")
            {
                var _Valeur = int.Parse(Valeur);
                switch (ConditionsSelected.Value)
                {
                case EnumConditions.ressemble:
                    try
                    {
                        var resultd = query.Where(a => SelectedProeprty.GetValue(a, null).ToString().Contains(Valeur));
                        Result = resultd.ToList();
                        Inputs = Result;
                    }
                    catch
                    { }


                    break;

                case EnumConditions.egale:
                    var result = query.Where(a => (int?)SelectedProeprty.GetValue(a, null) == (_Valeur));
                    Result = result.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.déffirent:
                    var resultDef = query.Where(a => (int?)SelectedProeprty.GetValue(a, null) != _Valeur);
                    Result = resultDef.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.inférieur:
                    var resultInf = query.Where(a => (int?)SelectedProeprty.GetValue(a, null) <= (_Valeur));
                    Result = resultInf.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.supérieur:
                    var resultSup = query.Where(a => (int?)SelectedProeprty.GetValue(a, null) >= (_Valeur));
                    Result = resultSup.ToList();
                    Inputs = Result;
                    break;

                default:
                    break;
                }
            }
            if (GetTypeName(SelectedProeprty.PropertyType) == "Decimal")
            {
                var _Valeur = decimal.Parse(Valeur);
                switch (ConditionsSelected.Value)
                {
                case EnumConditions.ressemble:
                    try
                    {
                        var resultd = query.Where(a => SelectedProeprty.GetValue(a, null)?.ToString()?.Contains(Valeur) == true);
                        Result = resultd.ToList();
                        Inputs = Result;
                    }
                    catch
                    { }

                    break;

                case EnumConditions.egale:
                    var result = query.Where(a => (decimal?)SelectedProeprty.GetValue(a, null) == (_Valeur));
                    Result = result.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.déffirent:
                    var resultDef = query.Where(a => (decimal?)SelectedProeprty.GetValue(a, null) != _Valeur);
                    Result = resultDef.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.inférieur:
                    var resultInf = query.Where(a => (decimal?)SelectedProeprty.GetValue(a, null) <= (_Valeur));
                    Result = resultInf.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.supérieur:
                    var resultSup = query.Where(a => (decimal?)SelectedProeprty.GetValue(a, null) >= (_Valeur));
                    Result = resultSup.ToList();
                    Inputs = Result;
                    break;

                default:
                    break;
                }
            }
            if (GetTypeName(SelectedProeprty.PropertyType) == "Double")
            {
                var _Valeur = double.Parse(Valeur);
                switch (ConditionsSelected.Value)
                {
                case EnumConditions.ressemble:
                    try
                    {
                        var resultd = query.Where(a => SelectedProeprty.GetValue(a, null).ToString().Contains(Valeur));
                        Result = resultd.ToList();
                        Inputs = Result;
                    }
                    catch
                    { }
                    break;

                case EnumConditions.egale:
                    var result = query.Where(a => (double?)SelectedProeprty.GetValue(a, null) == (_Valeur));
                    Result = result.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.déffirent:
                    var resultDef = query.Where(a => (double?)SelectedProeprty.GetValue(a, null) != _Valeur);
                    Result = resultDef.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.inférieur:
                    var resultInf = query.Where(a => (double?)SelectedProeprty.GetValue(a, null) <= (_Valeur));
                    Result = resultInf.ToList();
                    Inputs = Result;
                    break;

                case EnumConditions.supérieur:
                    var resultSup = query.Where(a => (double?)SelectedProeprty.GetValue(a, null) >= (_Valeur));
                    Result = resultSup.ToList();
                    Inputs = Result;
                    break;

                default:
                    break;
                }
            }
            if (GetTypeName(SelectedProeprty.PropertyType) == "String")
            {
                switch (ConditionsSelected.Value)
                {
                case EnumConditions.ressemble:
                    try
                    {
                        var results = query.Where(s =>
                        {
                            var value = SelectedProeprty.GetValue(s, null);
                            if (value == null)
                            {
                                return(false);
                            }
                            return(value.ToString().ToLower().Contains(Valeur.ToLower()));
                        });


                        Result = results.ToList();
                        Inputs = Result;
                    }
                    catch
                    { }

                    break;

                case EnumConditions.egale:
                    var result = query.Where(s =>
                    {
                        var value = SelectedProeprty.GetValue(s, null);
                        if (value == null)
                        {
                            return(false);
                        }
                        return(value.ToString() == (Valeur));
                    });

                    Result = result.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.déffirent:
                    var resultDef = query.Where(s =>
                    {
                        var value = SelectedProeprty.GetValue(s, null);
                        if (value == null)
                        {
                            return(false);
                        }
                        return(!(value.ToString() == (Valeur)));
                    });
                    Result = resultDef.ToList();
                    Inputs = Result;
                    break;


                default:
                    break;
                }
            }
            if (GetTypeName(SelectedProeprty.PropertyType) == "Guid")
            {
                var attributes = SelectedProeprty.GetCustomAttribute(typeof(ColumnAttribute)) as ColumnAttribute;
                var option     = attributes.Options;
                var link       = DS.Generic(option)?.Find("Name", Valeur, true)?.FirstOrDefault();
                if (link == null && ConditionsSelected.Value != EnumConditions.ressemble)
                {
                    return;
                }
                switch (ConditionsSelected.Value)
                {
                case EnumConditions.egale:
                    var result = query.Where(a => SelectedProeprty.GetValue(a, null).ToString().Equals(link.Id.ToString()));
                    Result = result.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.ressemble:
                    var resultRes = query.Where(a => SelectedProeprty.GetValue(a, null).ToString().Equals(link.Id.ToString()));
                    Result = resultRes.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.déffirent:
                    var resultDef = query.Where(a => !SelectedProeprty.GetValue(a, null).ToString().Contains(link.Id.ToString()));
                    Result = resultDef.ToList();
                    Inputs = Result;
                    break;


                default:
                    break;
                }
            }
            if (GetTypeName(SelectedProeprty.PropertyType) == "Boolean")
            {
                switch (ConditionsSelected.Value)
                {
                case EnumConditions.ressemble:
                    try
                    {
                        var results = query.Where(s =>
                        {
                            var value = SelectedProeprty.GetValue(s, null);
                            if (value == null)
                            {
                                return(false);
                            }
                            return(value.ToString().Contains(Valeur));
                        });


                        Result = results.ToList();
                        Inputs = Result;
                    }
                    catch
                    { }

                    break;

                case EnumConditions.egale:
                    var result = query.Where(s =>
                    {
                        var value = SelectedProeprty.GetValue(s, null);
                        if (value == null)
                        {
                            return(false);
                        }
                        return(value.ToString() == (Valeur));
                    });

                    Result = result.ToList();
                    Inputs = Result;

                    break;

                case EnumConditions.déffirent:
                    var resultDef = query.Where(s =>
                    {
                        var value = SelectedProeprty.GetValue(s, null);
                        if (value == null)
                        {
                            return(false);
                        }
                        return(!(value.ToString() == (Valeur)));
                    });
                    Result = resultDef.ToList();
                    Inputs = Result;
                    break;


                default:
                    break;
                }
            }
        }
Example #8
0
        public static void OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
        {
            var displayName = (e.PropertyDescriptor as PropertyDescriptor)?.Attributes[typeof(ExDisplayName)] as ExDisplayName; // GetPropertyDisplayName(e.PropertyDescriptor);

            if (displayName == null)
            {
                e.Cancel = true;
                return;
            }


            var isShow = (e.PropertyDescriptor as PropertyDescriptor)?.Attributes[typeof(ShowInTableAttribute)] as ShowInTableAttribute;; // GetPropertyDisplayName(e.PropertyDescriptor);

            if (isShow == null)
            {
                e.Cancel = true;
                return;
            }

            var  columnAttr = (e.PropertyDescriptor as PropertyDescriptor)?.Attributes[typeof(ColumnAttribute)] as ColumnAttribute;
            bool estDevise  = false;

            if (columnAttr != null)
            {
                if (columnAttr?.FieldType == ModelFieldType.Devise ||
                    (columnAttr.FieldType == ModelFieldType.ReadOnly && columnAttr.Options != ""))
                {
                    estDevise = true;
                }
            }



            if (displayName != null && !string.IsNullOrEmpty(displayName.DisplayName) && isShow.IsShow)
            {
                // IF IS EDITABLE DETAIL TABLE
                if ((sender as DataGrid).Name != "datagrid")
                {
                    if (e.PropertyType == typeof(Guid))
                    {
                        e.Cancel = true;
                    }

                    if (e.Column.DependencyObjectType.SystemType == typeof(DataGridCheckBoxColumn) ||
                        e.PropertyType == typeof(Guid) ||
                        e.PropertyType == typeof(Guid) ||
                        displayName.DisplayName == _("Réf"))
                    {
                        e.Column.IsReadOnly = true;
                    }
                    else
                    {
                        e.Column.IsReadOnly = false;
                    }
                }

                IsSourceAttribute attrisSource = (e.PropertyDescriptor as PropertyDescriptor).Attributes[typeof(IsSourceAttribute)] as IsSourceAttribute;

                // Treat column as combobox with source
                if (attrisSource != null)
                {
                    if (!String.IsNullOrWhiteSpace(attrisSource.source))
                    {
                        var cb = new DataGridComboBoxColumn();
                        cb.ItemsSource       = DS.Generic(attrisSource.source)?.GetAll();
                        cb.DisplayMemberPath = $"Name";

                        cb.SelectedValuePath    = "Id";
                        cb.SelectedValueBinding = new Binding($"l{attrisSource.source}");
                        e.Column = cb;
                    }
                }
                if (estDevise)
                {
                    DataGridTextColumn dataGridTextColumn = e.Column as DataGridTextColumn;
                    if (dataGridTextColumn != null)
                    {
                        dataGridTextColumn.Binding.StringFormat = "N";
                    }
                }
                //if (e.PropertyType == typeof(DateTime))
                //{
                //    DataGridTextColumn dataGridTextColumn = e.Column as DataGridTextColumn;
                //    if (dataGridTextColumn != null)
                //    {
                //        dataGridTextColumn.Binding.StringFormat = "d";
                //    }
                //}
                e.Column.Header = displayName.DisplayName;
                e.Column.Width  = DataGridLength.Auto;
                if (displayName.DisplayName == _("Crée le") &&
                    ((sender as DataGrid).Name != "datagrid" || (sender as DataGrid).Tag?.ToString() == "report"))
                {
                    e.Cancel = true;
                    return;
                }
                if (displayName.DisplayName == _("Crée par") &&
                    ((sender as DataGrid).Name != "datagrid" || (sender as DataGrid).Tag?.ToString() == "report"))
                {
                    e.Cancel = true;
                    return;
                }

                if (displayName.DisplayName == _("Status"))   //|| displayName == "Crée le"
                {
                    if ((sender as DataGrid).Name == "datagrid" && (sender as DataGrid).Tag?.ToString() != "report")
                    {
                        Style style = new Style()
                        {
                            TargetType = typeof(DataGridCell)
                        };


                        // style.Setters.Add(new Setter(property: DataGridCell.ForegroundProperty, value: Brushes.Black));
                        style.Setters.Add(new Setter(property: DataGridCell.MarginProperty, value: new Thickness(10, 2, 2, 2)));
                        style.Setters.Add(new Setter(property: DataGridCell.BackgroundProperty, value: new Binding {
                            Converter = new BackColorConv()
                        }));
                        style.Setters.Add(new Setter(property: DataGridCell.ForegroundProperty, value: System.Windows.Media.Brushes.White));

                        e.Column.CellStyle = style;
                    }
                    else
                    {
                        e.Cancel = true;
                    }
                }

                if ((sender as DataGrid).Name == "datagrid")
                {
                    if (displayName.DisplayName == _("Réf"))
                    {
                        e.Column.DisplayIndex = 0;
                        Style style = new Style()
                        {
                            TargetType = typeof(DataGridCell),
                            BasedOn    = App.Current.FindResource("MaterialDesignDataGridCell") as Style
                        };
                        // style.Setters.Add(new Setter(property: DataGridCell.MarginProperty, value: new Thickness(0)));
                        style.Setters.Add(new Setter(property: DataGridCell.VerticalContentAlignmentProperty, value: VerticalAlignment.Center));
                        style.Setters.Add(new Setter(property: DataGridCell.MinWidthProperty, value: ((double)150)));

                        // style.Setters.Add(new Setter(property: DataGridCell.PaddingProperty, value: new Thickness(10)));
                        style.Setters.Add(new Setter(property: DataGridCell.FontWeightProperty, value: FontWeights.SemiBold));
                        style.Setters.Add(new Setter(property: DataGridCell.VerticalAlignmentProperty, value: VerticalAlignment.Center));
                        e.Column.CellStyle = style;
                    }

                    if (columnAttr != null &&
                        !string.IsNullOrWhiteSpace(columnAttr.Options) &&
                        (columnAttr.FieldType == ModelFieldType.Lien))
                    {
                        var c = ((e.Column as DataGridTextColumn).Binding as Binding);

                        c.ConverterParameter = columnAttr.Options;
                        c.Converter          = objectIdConv;
                    }
                }

                if (displayName.DisplayName == "Retard")
                {
                    //Style style = new Style()
                    //{
                    //    TargetType = typeof(DataGridCell)
                    //};
                    //style.Setters.Add(new Setter(property: DataGridCell.ForegroundProperty, value: Brushes.Black));
                    //style.Setters.Add(new Setter(property: DataGridCell.MarginProperty, value: new Thickness(10, 2, 2, 2)));
                    //style.Setters.Add(new Setter(property: DataGridCell.BackgroundProperty, value: new Binding { Converter = new BackFicheAnimalColorConv() }));

                    //e.Column.CellStyle = style;
                }

                //var bold = GetPropertyIsBold(e.PropertyDescriptor);
                //if ((sender as DataGrid).Name == "datagrid" && bold)
                //{
                //    Style style = new Style()
                //    {
                //        TargetType = typeof(DataGridCell)
                //    };

                //    style.Setters.Add(new Setter(property: DataGridCell.FontWeightProperty, value: FontWeights.Bold));
                //    style.Setters.Add(new Setter(property: DataGridCell.VerticalAlignmentProperty, value: VerticalAlignment.Center));
                //    //style.Setters.Add(new Setter(property: DataGridCell.MarginProperty, value: new Thickness(10, 2, 2, 2)));
                //    e.Column.CellStyle = style;
                //}
            }
            else
            {
                e.Cancel = true;
            }
        }