Exemple #1
0
        public DatabaseManager()
        {
            Container = new PermGuideContainer();

            mSets = new Dictionary <Type, object>();

            // При добавлении класса следует обновить

            /*mSets = new Dictionary<Type, object>
             * {
             *  { typeof(ArticleRecord), Container.ContentRecordSet }, // ArticleRecordSet },
             *  { typeof(ExcursionRecord), Container.ContentRecordSet }, // ExcursionRecordSet },
             *  { typeof(FileRecord), Container.FileRecordSet },
             *  { typeof(RegionRecord), Container.RegionRecordSet },
             *  { typeof(ReviewRecord), Container.ReviewRecordSet },
             *  { typeof(SightRecord), Container.ContentRecordSet }, // SightRecordSet },
             *  { typeof(TimetableRecord), Container.TimetableRecordSet },
             *  { typeof(UserRecord), Container.UserRecordSet },
             *
             *  { typeof(DbSet<ArticleRecord>), Container.ContentRecordSet }, // ArticleRecordSet },
             *  { typeof(DbSet<ExcursionRecord>), Container.ContentRecordSet }, // ExcursionRecordSet },
             *  { typeof(DbSet<FileRecord>), Container.FileRecordSet },
             *  { typeof(DbSet<RegionRecord>), Container.RegionRecordSet },
             *  { typeof(DbSet<ReviewRecord>), Container.ReviewRecordSet },
             *  { typeof(DbSet<SightRecord>), Container.ContentRecordSet }, // SightRecordSet },
             *  { typeof(DbSet<TimetableRecord>), Container.TimetableRecordSet },
             *  { typeof(DbSet<UserRecord>), Container.UserRecordSet },
             * };*/

            var thisAsm  = Assembly.GetExecutingAssembly();
            var contType = Container.GetType();

            var keys = from v
                       in thisAsm.DefinedTypes
                       where v.Name != "Record" && v.Name.Contains("Record")
                       select v;

            var values = from v
                         in contType.GetProperties()
                         where v.Name.Contains("RecordSet")
                         select v;

            foreach (var k in keys)
            {
                foreach (var v in values)
                {
                    var vType = v.PropertyType.GenericTypeArguments[0];

                    if (k.IsSubclassOf(vType) || k == vType)
                    {
                        mSets.Add(k, v.GetValue(Container));
                    }
                }
            }
        }
Exemple #2
0
        public DatabaseManager()
        {
            Container = new PermGuideContainer();

            mSets = new Dictionary <Type, object>();

            // При добавлении класса следует обновить

            /*mSets = new Dictionary<Type, object>
             * {
             *  { typeof(Article), Container.ContentSet }, // ArticleSet },
             *  { typeof(Excursion), Container.ContentSet }, // ExcursionSet },
             *  { typeof(File), Container.FileSet },
             *  { typeof(Region), Container.RegionSet },
             *  { typeof(Review), Container.ReviewSet },
             *  { typeof(Sight), Container.ContentSet }, // SightSet },
             *  { typeof(Timetable), Container.TimetableSet },
             *  { typeof(User), Container.UserSet },
             *
             *  { typeof(DbSet<Article>), Container.ContentSet }, // ArticleSet },
             *  { typeof(DbSet<Excursion>), Container.ContentSet }, // ExcursionSet },
             *  { typeof(DbSet<File>), Container.FileSet },
             *  { typeof(DbSet<Region>), Container.RegionSet },
             *  { typeof(DbSet<Review>), Container.ReviewSet },
             *  { typeof(DbSet<Sight>), Container.ContentSet }, // SightSet },
             *  { typeof(DbSet<Timetable>), Container.TimetableSet },
             *  { typeof(DbSet<User>), Container.UserSet },
             * };*/

            /*var thisAsm = Assembly.GetExecutingAssembly();
             * var contType = Container.GetType();
             *
             * var keys = from v
             *         in thisAsm.DefinedTypes
             *         where v.Name != "" && v.Name.Contains("")
             *         select v;
             *
             * var values = from v
             *           in contType.GetProperties()
             *           where v.Name.Contains("Set")
             *           select v;
             *
             * foreach (var k in keys)
             *  foreach (var v in values)
             *  {
             *      var vType = v.PropertyType.GenericTypeArguments[0];
             *
             *      if (k.IsSubclassOf(vType) || k == vType)
             *          mSets.Add(k, v.GetValue(Container));
             *  }*/

            /* var thisAsm = Assembly.GetExecutingAssembly();
             * var contType = Container.GetType();
             *
             * var values = from v
             *           in contType.GetProperties()
             *           where v.Name.Contains("Set")
             *           select v.Name.Substring(0, v.Name.Length - 3);
             *
             * var set = new HashSet<string>(values);
             *
             * var keys = from v
             *         in thisAsm.DefinedTypes
             *         where set.Contains(v.Name)
             *         select v;
             *
             * mDbTypes = new HashSet<Type>(keys); */

            mDbTypes = new HashSet <Type>
            {
                typeof(Article),
                typeof(Content),
                typeof(Excursion),
                typeof(MediaFile),
                typeof(Review),
                typeof(Sight),
                // typeof(Timetable),
                typeof(User),
            };
        }