public HomeController(UserManager <ExtendedUser> userManager, ExtendedDbContext context)
 {
     this.userManager = userManager ?? throw new ArgumentNullException(nameof(userManager));
     this.context     = context ?? throw new ArgumentNullException(nameof(context));
 }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AuditService"/> class.
 /// </summary>
 /// <param name="context">
 /// The context.
 /// </param>
 public AuditService(ExtendedDbContext context)
 {
     this.Context = context;
 }
        public static DataGridView Bind(this DataGridView grid, IBindingList data, ExtendedDbContext dbContext,
                                        bool autoGenerateColumns = true)
        {
            grid.DataSource = null;
            if (autoGenerateColumns)
            {
                var dataType = data.GetDataType();

                var properties = TypeDescriptor.GetProperties(dataType);

                var dependentItems = dbContext.Model.FindEntityType(dataType).GetNavigations()
                                     .Where(n => n.IsOnDependent)
                                     .Select(n =>
                {
                    Type toDataType = n.ClrType;

                    IBindingList bindingList = dbContext
                                               .GetDbSets(false)
                                               .FirstOrDefault(ds => ds.GetDataType() == n.ClrType);

                    var dataSource = Array.CreateInstance(n.ClrType, bindingList.Count);

                    bindingList.CopyTo(dataSource, 0);

                    return(new
                    {
                        FromPropName = n.ForeignKey.Properties[0].Name,
                        ToPropName = n.ForeignKey.PrincipalKey.Properties[0].Name,
                        DataSource = dataSource
                    });
                });

                var metedata = properties.Cast <PropertyDescriptor>()
                               .Where(p => p.IsBrowsable)
                               .Select(p =>
                {
                    var dependment = dependentItems?.FirstOrDefault(di => di.FromPropName == p.Name);

                    return(new
                    {
                        Name = p.Name,
                        HeaderText = p.Attributes.OfType <DisplayAttribute>()
                                     .FirstOrDefault()?.Name ?? p.DisplayName,
                        ReadOnly = p.IsReadOnly,
                        Type = p.PropertyType,
                        Dependency = dependment
                    });
                });

                var columns = metedata.Select(m =>
                {
                    DataGridViewColumn c;

                    c = (m.Dependency) switch
                    {
                        not null => new DataGridViewComboBoxColumn
                        {
                            DisplayMember = m.Dependency.ToPropName,
                            ValueMember   = m.Dependency.ToPropName,
                            DataSource    = m.Dependency.DataSource,
                        },
                        _ => new DataGridViewTextBoxColumn()
                    };

                    c.DataPropertyName = m.Name;
                    c.Resizable        = DataGridViewTriState.True;
                    c.Name             = m.Name;
                    c.HeaderText       = m.HeaderText;
                    c.ReadOnly         = m.ReadOnly;
                    if (m.ReadOnly)
                    {
                        c.DefaultCellStyle = new DataGridViewCellStyle {
                            BackColor = Color.DarkGray
                        }
                    }
                    ;
                    c.ValueType    = m.Type;
                    c.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
                    c.SortMode     = DataGridViewColumnSortMode.NotSortable;
                    return(c);
                });

                grid.Columns.Clear();
                grid.Columns.AddRange(columns.ToArray());
            }

            grid.DataSource = data;

            return(grid);
        }
Exemple #4
0
 public RatpHidalgoEntities(string connectionString)
     : base(ExtendedDbContext.GetConnectionString(connectionString, Resource1.AssemblyName, Resource1.EdmxName))
 {
 }