Ejemplo n.º 1
0
 public DbModelLoader(DbSettings settings, MemoryLog log)
 {
     Settings = settings;
       Log = log;
       Driver = Settings.ModelConfig.Driver;
       SetupSchemas(Settings.GetSchemas());
 }
Ejemplo n.º 2
0
 public PgDbModelLoader(DbSettings settings, MemoryLog log)
     : base(settings, log)
 {
     // Value identifying tables in information_schema.Tables view; for Postgres it is 'BASE TABLE'
       base.TableTypeTag = "BASE TABLE";
       // Value identifying routines in information_schema.Routines view
       base.RoutineTypeTag = "FUNCTION";
 }
Ejemplo n.º 3
0
        public bool VersionsChanged; //true if detected any version changes

        #endregion Fields

        #region Constructors

        public DbUpgradeInfo(DbSettings settings, DbModel newModel)
        {
            Settings = settings;
              NewDbModel = newModel;
              var serverType = NewDbModel.Driver.ServerType;
              Id = Guid.NewGuid();
              Method = DbUpgradeMethod.Auto; //might be changed by update tool app
              UserName = "******";
              Status = UpgradeStatus.None;
        }
Ejemplo n.º 4
0
        public PeopleRepository(string conn, string db)
        {
            _config = new DbSettings
            {
                connectionstring = conn,
                database = db,
                collections = new collections
                {
                    People = "People"
                }
            };

            _database = Connect();
        }
Ejemplo n.º 5
0
        public SuggestionsRepository(string conn, string db)
        {
            _config = new DbSettings
            {
                connectionstring = conn,
                database = db,
                collections = new collections
                {
                    Suggestions = "Suggestions"
                }
            };

            _database = Connect();
        }
Ejemplo n.º 6
0
        public ProgramsRepository(string conn, string db)
        {
            _config = new DbSettings
            {
                connectionstring = conn,
                database = db,
                collections = new collections
                {
                    Programs = "Programs"
                }
            };

            _database = Connect();
        }
Ejemplo n.º 7
0
        static DbSettings()
        {
            MySQL = new DbSettings
            {
                firstNameEscapeSymbol = "`",
                secondNameEscapeSymbol = "`",
                paramPrefix = "@p_"
            };

            MSSQL = new DbSettings
            {
                firstNameEscapeSymbol = "[",
                secondNameEscapeSymbol = "]",
                paramPrefix = "@p_"
            };
        }
        public AddDbCommandsMappingConfig(
            DbSettings dbSettings,
            IEnumerable<string> includeFields,
            IEnumerable<string> excludeFields,
            string configName)
        {
            _dbSettings = dbSettings;
            _includeFields = includeFields;
            _excludeFields = excludeFields;
            _configName = configName;

            if (_includeFields != null)
            {
                _includeFields = _includeFields.Select(f => f.ToUpper());
            }

            if (_excludeFields != null)
            {
                _excludeFields = _excludeFields.Select(f => f.ToUpper());
            }
        }
Ejemplo n.º 9
0
 public SQLiteDbModelUpdater(DbSettings settings)
     : base(settings)
 {
 }
Ejemplo n.º 10
0
 public abstract DbModelLoader CreateDbModelLoader(DbSettings settings, SystemLog log);
Ejemplo n.º 11
0
 public PgCategoryRepository(DbSettings _dbSettings, IEventBus _bus) : base(_dbSettings, _bus)
 {
 }
 public PgUsageLocationStatusRepository(DbSettings _dbSettings, IEventBus _bus) : base(_dbSettings, _bus)
 {
 }
Ejemplo n.º 13
0
 public BTable(DbSettings settings, string name)
     : base(settings, name)
 {
 }
Ejemplo n.º 14
0
 public PeopleRepository(IOptions<DbSettings> config)
 {
     _config = config.Value;
     _database = Connect();
 }
Ejemplo n.º 15
0
 public PgDbModelUpdater(DbSettings settings)
     : base(settings)
 {
 }
Ejemplo n.º 16
0
 public PgDbModelUpdater(DbSettings settings) : base(settings)
 {
 }
Ejemplo n.º 17
0
 public HomeController(IOptions <DbSettings> dbSettings)
 {
     _dbSettings = dbSettings.Value;
 }
Ejemplo n.º 18
0
 public MongoStudyRepository(DbSettings dbSettings)
 {
     _context = new StudiesContext(dbSettings);
 }
Ejemplo n.º 19
0
 public LocalDbService(DbSettings dbSettings)
 {
     ConnectionString = $"Data Source={dbSettings.Address}; AttachDbFilename={dbSettings.Name}; " +
                        "Integrated Security=True; Connect Timeout=30";
 }
Ejemplo n.º 20
0
        public void Create(SQL _Sql, LambdaExpression _LambdaExpression)
        {
            if (_LambdaExpression.Body is ConstantExpression)//如果是字符串
            {
                var body = (_LambdaExpression.Body as ConstantExpression);
                this.AddCode(_Sql, body.Value);
            }
            else if (_LambdaExpression.Body is MemberExpression)
            {
                var _MemberExpression = _LambdaExpression.Body as MemberExpression;
                if (_MemberExpression.Expression is ConstantExpression)
                {
                    var value = Parser.Eval(_LambdaExpression.Body);
                    this.AddCode(_Sql, value);
                }
                else if (_MemberExpression.Expression is ParameterExpression)
                {
                    var _ParameterExpression = _MemberExpression.Expression as ParameterExpression;
                    var _TabName             = this.AddAlias(_ParameterExpression.Name, _Sql);
                    var _DisplayName         = DbSettings.KeywordHandle(_MemberExpression.Member.Name);
                    var column = new List <string>();
                    column.Add(_TabName + _DisplayName + " AS " + _DisplayName);
                    this.AddCode(_Sql, string.Join(",", column));
                }
            }
            else if (_LambdaExpression.Body is NewExpression)//如果是匿名对象
            {
                var body   = (_LambdaExpression.Body as NewExpression);
                var values = body.Arguments;
                var member = body.Members;
                var column = new List <string>();

                var list_member = member.ToList();
                foreach (var item in values)
                {
                    if (item is MemberExpression)
                    {
                        var it = item as MemberExpression;
                        //检查是否有别名
                        var DisplayName = DbSettings.KeywordHandle(list_member[values.IndexOf(item)].Name);
                        var _TabName    = this.AddAlias((it.Expression as ParameterExpression).Name, _Sql);
                        column.Add(_TabName + DbSettings.KeywordHandle(it.Member.Name) + " AS " + DisplayName);
                    }
                    else if (item is ConstantExpression)
                    {
                        var it  = item as ConstantExpression;
                        var val = it.Value;
                        //检查是否有别名 ''
                        var DisplayName = list_member[values.IndexOf(item)].Name;
                        if (!string.IsNullOrEmpty(DisplayName))
                        {
                            //判断别名是否 有 SqlString 关键字
                            if (DisplayName.StartsWith("SqlString"))
                            {
                                column.Add(val.ToString());
                            }
                            else
                            {
                                column.Add(DbSettings.KeywordHandle(val.ToString()) + " AS " + DbSettings.KeywordHandle(DisplayName));
                            }
                        }
                    }
                    else if (item.Type == typeof(string))
                    {
                        //检查是否有别名 ''
                        var value       = Parser.Eval(item).ToString();
                        var DisplayName = list_member[values.IndexOf(item)].Name;
                        if (!string.IsNullOrEmpty(DisplayName) && DisplayName.StartsWith("SqlString"))
                        {
                            column.Add(value);
                        }
                    }
                    else if (item is ParameterExpression)
                    {
                        this.AnalysisParameterExpression(item as ParameterExpression, column);
                    }
                }
                this.AddCode(_Sql, string.Join(",", column));
            }
            else if (_LambdaExpression.Body is ParameterExpression)
            {
                var column = new List <string>();
                this.AnalysisParameterExpression(_LambdaExpression.Body as ParameterExpression, column);
                this.AddCode(_Sql, string.Join(",", column));
            }
            else
            {
                throw new DbFrameException(" SELECT 语法不支持!");
            }
        }
Ejemplo n.º 21
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // CONFIGURATION SETTINGS

            var applicationConfiguration = Configuration.GetSection("Application");
            var applicationSettings      = new ApplicationSettings(
                applicationConfiguration["DefaultNickname"],
                applicationConfiguration.GetValue <double>("RadiusAround"),
                applicationConfiguration["UploadsFolderName"]);

            services.AddSingleton(applicationSettings);

            var securityConfiguration = Configuration.GetSection("Security");
            var securitySettings      = new SecuritySettings(
                securityConfiguration["EncryptionKey"],
                securityConfiguration["Issue"],
                securityConfiguration.GetValue <TimeSpan>("ExpirationPeriod"));

            services.AddSingleton(securitySettings);

            // REPOSITORIES

            IShyneesRepository shyneesRepository;

            if (Configuration.GetValue <bool>("Database:IsInMemory"))
            {
                shyneesRepository = new InMemoryShyneesRepository();
            }
            else
            {
                var dbConfiguration = Configuration.GetSection("Database:MongoDB");
                var dbSettings      = new DbSettings(
                    dbConfiguration["ConnectionString"],
                    dbConfiguration["Database"]);
                services.AddSingleton(dbSettings);
                var dbMapper  = new DbMapper();
                var dbContext = new DbContext(dbSettings);
                shyneesRepository = new ShyneesRepository(dbContext);
            }

            // SERVICES

            var shyneesService = new ShyneesService(shyneesRepository, applicationSettings);
            var assetsService  = new AssetsService(applicationSettings);

            services.AddSingleton <IShyneesService>(shyneesService);
            services.AddSingleton <IAssetsService>(assetsService);

            // OTHER DEPENDENCIES

            services.AddScoped <ModelValidationAttribute>();

            var jwtIssuer = new JwtIssuer(securitySettings);

            services.AddSingleton <IJwtIssuer>(jwtIssuer);

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuer           = false,
                    ValidateAudience         = false,
                    ValidateLifetime         = true,
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(
                        Encoding.UTF8.GetBytes(securitySettings.EncryptionKey))
                };
            });

            services
            .AddAuthorization(options =>
            {
                options.DefaultPolicy =
                    new AuthorizationPolicyBuilder(JwtBearerDefaults.AuthenticationScheme)
                    .RequireAuthenticatedUser().Build();
            });

            services.AddCors(options =>
            {
                options.AddPolicy("EnableCORS", builder =>
                {
                    builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials().Build();
                });
            });

            services.AddMvc(config =>
            {
                config.ReturnHttpNotAcceptable = true;
            });

            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new Info
                {
                    Title       = Configuration["Swagger:Title"],
                    Version     = Configuration["Swagger:Version"],
                    Description = Configuration["Swagger:Description"]
                });
                options.AddSecurityDefinition("Bearer", new ApiKeyScheme
                {
                    Description =
                        "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                    Name = "Authorization",
                    In   = "header",
                    Type = "apiKey"
                });
                options.IncludeXmlComments(string.Format(@"{0}/ShyneeBackend.Application.xml",
                                                         AppDomain.CurrentDomain.BaseDirectory));
                options.IncludeXmlComments(string.Format(@"{0}/ShyneeBackend.Domain.xml",
                                                         AppDomain.CurrentDomain.BaseDirectory));
                options.DescribeAllEnumsAsStrings();
            });
        }
Ejemplo n.º 22
0
        public ProjectSeedData(IOptions <DbSettings> dbSettings, IOptions <DbData> dbData)
        {
            _dbSettings = dbSettings.Value;
            _client     = new DocumentClient(new Uri(_dbSettings.EndpointUri), _dbSettings.PrimaryKey);
            _dbData     = dbData.Value;

            _dbName = _dbData.DbName;
            _projectsCollectionName = _dbData.ProjectsCollectionName;
            _ticketsCollectionName  = _dbData.TicketsCollectionName;
            _usersCollectionName    = _dbData.UsersCollectionName;

            // init seed data lists
            _projectsList = new List <Project>()
            {
                new Project()
                {
                    Id      = _dbData.AtpId,
                    Name    = _dbData.AtpName,
                    Tickets = new List <TicketBase>()
                    {
                        new TicketBase()
                        {
                            Id   = _dbData.AtpTicketId1,
                            Name = _dbData.AtpTicketName1
                        },
                        new TicketBase()
                        {
                            Id   = _dbData.AtpTicketId2,
                            Name = _dbData.AtpTicketName2
                        }
                    }
                },
                new Project()
                {
                    Id      = _dbData.BtId,
                    Name    = _dbData.BtName,
                    Tickets = new List <TicketBase>()
                    {
                        new TicketBase()
                        {
                            Id   = _dbData.BtTicketId1,
                            Name = _dbData.BtTicketName1
                        }
                    }
                }
            };

            _ticketsList = new List <Ticket>()
            {
                new Ticket()
                {
                    Id          = _dbData.AtpTicketId1,
                    Name        = _dbData.AtpTicketName1,
                    Description = _dbData.AtpTicketDesc1,
                    ProjectName = _dbData.AtpName
                },
                new Ticket()
                {
                    Id          = _dbData.AtpTicketId2,
                    Name        = _dbData.AtpTicketName2,
                    Description = _dbData.AtpTicketDesc2,
                    ProjectName = _dbData.AtpName
                },
                new Ticket()
                {
                    Id          = _dbData.BtTicketId1,
                    Name        = _dbData.BtTicketName1,
                    Description = _dbData.BtTicketDesc1,
                    ProjectName = _dbData.BtName
                },
            };
        }
Ejemplo n.º 23
0
 public override DbModelLoader CreateDbModelLoader(DbSettings settings, MemoryLog log)
 {
     return new SqlCeDbModelLoader(settings, log);
 }
 /// <summary>
 /// Instantiates a new database interaction object.
 /// </summary>
 public OracleManagedDatabase2(string connectionString, DbSettings setting) : base(connectionString, setting)
 {
 }
Ejemplo n.º 25
0
 public MsSqlDbModelUpdater(DbSettings settings)
     : base(settings)
 {
 }
 /// <summary>
 /// Instantiates a new database interaction object.
 /// </summary>
 public OracleManagedDatabase2(string connectionString, DbSettings setting, IsolationLevel isolation) : base(connectionString, setting, isolation)
 {
 }
Ejemplo n.º 27
0
 protected void Page_Load(object sender, EventArgs e)
 {
     // Check the templates are loaded, else load them
     #if !DEBUG
     if (templates == null)
     {
         templates = new UberCMS.Misc.HtmlTemplates();
         templates.reloadFromDisk(AppDomain.CurrentDomain.BaseDirectory + "\\Installer\\Templates");
     }
     #else
     if (templates == null) templates = new UberCMS.Misc.HtmlTemplates();
     templates.reloadFromDisk(AppDomain.CurrentDomain.BaseDirectory + "\\Installer\\Templates");
     #endif
     // Check if any DB settings have been loaded, else load them
     if (dbSettings == null && File.Exists(AppDomain.CurrentDomain.BaseDirectory + "\\CMS.config"))
     {
         XmlDocument settings = new XmlDocument();
         settings.LoadXml(File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "\\CMS.config"));
         dbSettings = new DbSettings(
             settings["settings"]["db"]["host"].InnerText,
             settings["settings"]["db"]["database"].InnerText,
             settings["settings"]["db"]["username"].InnerText,
             settings["settings"]["db"]["password"].InnerText,
             int.Parse(settings["settings"]["db"]["port"].InnerText)
             );
         settings = null;
     }
     // Invoke the correct page to handle the request
     UberCMS.Misc.PageElements pageElements = new UberCMS.Misc.PageElements();
     pageElements["URL"] = ResolveUrl("/install");
     pageElements["BASE_URL"] = ResolveUrl("/");
     StringBuilder content = new StringBuilder();
     #if !INSTALLED
     switch (Request.QueryString["1"])
     {
         case "home":
         case null:
             pageHome(ref pageElements, Request, Response, ref content);
             break;
         case "setup":
             pageSetup(ref pageElements, Request, Response, ref content);
             break;
         case "install":
             pageInstall(ref pageElements, Request, Response, ref content);
             break;
     }
     #else
     Response.Redirect(ResolveUrl(""));
     #endif
     // Build and display the final output
     pageElements["CONTENT"] = content.ToString();
     StringBuilder template = new StringBuilder(templates[TEMPLATES_KEY]["template"]);
     pageElements.replaceElements(ref template, 0, 5);
     Response.Write(template.ToString());
 }
Ejemplo n.º 28
0
 public PeopleRepository(DbSettings config)
 {
     _config = config;
     _database = Connect();
 }
Ejemplo n.º 29
0
 public MsSqlDbModelLoader(DbSettings settings, MemoryLog log)
     : base(settings, log)
 {
     base.TableTypeTag = "BASE TABLE";
       base.RoutineTypeTag = "PROCEDURE";
 }
 public NotificationDbContext(IOptions <DbSettings> dbSetting)
 {
     this._dbSetting = dbSetting.Value;
 }
Ejemplo n.º 31
0
 public HotelRepository(DbSettings dbSettings)
 {
     Login       = Environment.GetEnvironmentVariable("NEO4J_USER_NAME");
     Password    = Environment.GetEnvironmentVariable("NEO4J_PASSWORD");
     GraphClient = new BoltGraphClient(new Uri(dbSettings.DbConnectionString), Login, Password);
 }
 public static string BuildConnectionString(DbSettings dbSettings)
 {
     return($"SERVER={dbSettings.server};DATABASE={dbSettings.database};UID={dbSettings.database_user};PASSWORD={dbSettings.database_password};Charset=utf8;");
 }
Ejemplo n.º 33
0
 public DataLayerModule(IReloadingManager <AppSettings> appSettings)
 {
     _dbSettings = appSettings.CurrentValue.CrossChainTransfersService.Db;
 }
Ejemplo n.º 34
0
 public DatabaseModule(DbSettings settings)
 {
     _settings = settings;
 }
Ejemplo n.º 35
0
 public SqlCeDbModelUpdater(DbSettings settings)
     : base(settings)
 {
 }
Ejemplo n.º 36
0
 public ExampleRepository(IMapper mapper, IOptions <DbSettings> options)
 {
     _mapper     = mapper;
     _dbSettings = options.Value;
 }
Ejemplo n.º 37
0
 public SqlServerDbEngine(DbSettings dbSettings)
     : base(dbSettings)
 {
     _connectionString = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", _dbSettings.HOST, _dbSettings.DB_NAME);
 }
Ejemplo n.º 38
0
 /// <summary>
 /// Instantiates a new encapsulated asynchronous database interaction object according to database setting.
 /// </summary>
 public IDatabaseAsync2 GetDbObjectAsync(DbSettings setting)
 {
     return(GetDbObject(setting) as IDatabaseAsync2);
 }
Ejemplo n.º 39
0
 public SqlCeDbModelLoader(DbSettings settings, MemoryLog log)
     : base(settings, log)
 {
 }
Ejemplo n.º 40
0
 /// <summary>
 /// Instantiates a new encapsulated asynchronous database interaction object according to database setting and transaction isolation.
 /// </summary>
 public IDatabaseAsync2 GetDbObjectAsync(DbSettings setting, IsolationLevel isolation)
 {
     return(GetDbObject(setting, isolation) as IDatabaseAsync2);
 }
Ejemplo n.º 41
0
 public override DbModelUpdater CreateDbModelUpdater(DbSettings settings)
 {
     return new SqlCeDbModelUpdater(settings);
 }
Ejemplo n.º 42
0
 /// <summary>
 /// Instantiates a new encapsulated asynchronous database interaction object according to provider and database setting.
 /// </summary>
 public IDatabaseAsync2 GetDbObjectAsync(Provider provider, DbSettings setting)
 {
     return(GetDbObject(provider, setting) as IDatabaseAsync2);
 }
Ejemplo n.º 43
0
 public DbModelUpdater(DbSettings settings)
 {
     Settings = settings;
 }
Ejemplo n.º 44
0
 /// <summary>
 /// Instantiates a new encapsulated asynchronous database interaction object according to provider, database setting and transaction isolation.
 /// </summary>
 public IDatabaseAsync2 GetDbObjectAsync(Provider provider, DbSettings setting, IsolationLevel isolation)
 {
     return(GetDbObject(provider, setting, isolation) as IDatabaseAsync2);
 }
Ejemplo n.º 45
0
 public PgResourceRepository(DbSettings _dbSettings, IEventBus _bus) : base(_dbSettings, _bus)
 {
 }
Ejemplo n.º 46
0
 /// <summary>
 /// Instantiates a new encapsulated asynchronous database interaction object according to database setting.
 /// </summary>
 public IDatabaseAsync2 GetDbObjectAsync(string connectionString, DbSettings setting)
 {
     return(GetDbObject(connectionString, setting) as IDatabaseAsync2);
 }
        public ISettings GetAllowedSettings(int id)
        {
            DbSettings settingsCache = Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.GetIdentifier(CacheObject.AllowedLearningModuleSettings, id)] as DbSettings;
            if (settingsCache != null)
                return settingsCache;

            using (NpgsqlConnection con = PostgreSQLConn.CreateConnection(Parent.CurrentUser))
            {
                using (NpgsqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = "SELECT allowed_settings_id FROM \"LearningModules\" WHERE id=:id";
                    cmd.Parameters.Add("id", id);
                    int? settingsid = PostgreSQLConn.ExecuteScalar<int>(cmd, Parent.CurrentUser);
                    if (!settingsid.HasValue)
                        return null;
                    DbSettings settings = new DbSettings(settingsid.Value, false, Parent);
                    Parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.AllowedLearningModuleSettings, id, Cache.DefaultSettingsValidationTime)] = settings;
                    return settings;

                }
            }
        }
Ejemplo n.º 48
0
 public abstract DbModelLoader CreateDbModelLoader(DbSettings settings, MemoryLog log);
Ejemplo n.º 49
0
 protected DbEngine(DbSettings dbSettings)
 {
     _dbSettings = dbSettings;
 }
        /// <summary>
        /// Gets the default settings.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev08, 2009-01-12</remarks>
        public ISettings GetDefaultSettings(int id)
        {
            DbSettings settingsCache = parent.CurrentUser.Cache[ObjectLifetimeIdentifier.GetIdentifier(CacheObject.DefaultLearningModuleSettings, id)] as DbSettings;
            if (settingsCache != null)
                return settingsCache;

            using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(parent.CurrentUser))
            {
                cmd.CommandText = "SELECT default_settings_id FROM \"LearningModules\" WHERE id=@id";
                cmd.Parameters.Add("@id", id);
                int? settingsid = MSSQLCEConn.ExecuteScalar<int>(cmd);
                if (!settingsid.HasValue)
                    return null;

                DbSettings settings = new DbSettings(settingsid.Value, false, parent);
                parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.DefaultLearningModuleSettings, id, Cache.DefaultSettingsValidationTime)] = settings;
                return settings;
            }
        }
Ejemplo n.º 51
0
 public SuggestionsRepository(DbSettings config)
 {
     _config = config;
     _database = Connect();
 }
Ejemplo n.º 52
0
 public override DbModelUpdater CreateDbModelUpdater(DbSettings settings)
 {
     return(new SqlCeDbModelUpdater(settings));
 }
Ejemplo n.º 53
0
 public ProgramsRepository(DbSettings config)
 {
     _config = config;
     _database = Connect();
 }
Ejemplo n.º 54
0
 public override DbModelLoader CreateDbModelLoader(DbSettings settings, SystemLog log)
 {
     return(new SqlCeDbModelLoader(settings, log));
 }
        /// <summary>
        /// Gets the user settings.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <returns></returns>
        /// <remarks>Documented by Dev08, 2009-01-12</remarks>
        public ISettings GetUserSettings(int id)
        {
            DbSettings settingsCache = parent.CurrentUser.Cache[ObjectLifetimeIdentifier.GetIdentifier(CacheObject.UserLearningModuleSettings, id)] as DbSettings;
            if (settingsCache != null)
                return settingsCache;

            int count;
            using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(parent.CurrentUser))
            {
                cmd.CommandText = "SELECT count(*) FROM \"UserProfilesLearningModulesSettings\" WHERE user_id=@param_user_id and lm_id=@param_lm_id;";
                cmd.Parameters.Add("@param_user_id", parent.CurrentUser.Id);
                cmd.Parameters.Add("@param_lm_id", id);

                count = Convert.ToInt32(MSSQLCEConn.ExecuteScalar(cmd));
            }

            int result;
            if (count < 1)      //Create new settings
            {
                using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(parent.CurrentUser))
                {
                    cmd.CommandText = "INSERT INTO \"UserProfilesLearningModulesSettings\" (user_id, lm_id, settings_id) VALUES (@param_user_id, @param_lm_id, @param_new_settings);";
                    cmd.Parameters.Add("@param_user_id", parent.CurrentUser.Id);
                    cmd.Parameters.Add("@param_lm_id", id);
                    cmd.Parameters.Add("@param_new_settings", MsSqlCeSettingsConnector.CreateNewSettings(parent));

                    MSSQLCEConn.ExecuteNonQuery(cmd);
                }

                using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(parent.CurrentUser))
                {
                    cmd.CommandText = "SELECT settings_id FROM \"UserProfilesLearningModulesSettings\" WHERE user_id=@param_user_id and lm_id=@param_lm_id;";
                    cmd.Parameters.Add("@param_user_id", parent.CurrentUser.Id);
                    cmd.Parameters.Add("@param_lm_id", id);

                    result = Convert.ToInt32(MSSQLCEConn.ExecuteScalar(cmd));
                }

                //Selected Learn Chapters
                using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(parent.CurrentUser))
                {
                    cmd.CommandText = "SELECT id FROM \"Chapters\" WHERE lm_id=@param_lm_id";
                    cmd.Parameters.Add("@param_lm_id", id);

                    SqlCeDataReader reader = MSSQLCEConn.ExecuteReader(cmd);
                    while (reader.Read())
                    {
                        using (SqlCeCommand cmd2 = MSSQLCEConn.CreateCommand(parent.CurrentUser))
                        {
                            cmd2.CommandText = "INSERT INTO \"SelectedLearnChapters\" VALUES (@cid, @result);";
                            cmd2.Parameters.Add("@cid", reader["id"]);
                            cmd2.Parameters.Add("@result", result);

                            MSSQLCEConn.ExecuteNonQuery(cmd2);
                        }
                    }
                    reader.Close();
                }

                DbSettings settings = new DbSettings(result, false, parent);
                parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.UserLearningModuleSettings, id, Cache.DefaultSettingsValidationTime)] = settings;
                return settings;
            }
            else
            {
                using (SqlCeCommand cmd = MSSQLCEConn.CreateCommand(parent.CurrentUser))
                {
                    cmd.CommandText = "SELECT settings_id FROM \"UserProfilesLearningModulesSettings\" WHERE user_id=@param_user_id and lm_id=@param_lm_id;";
                    cmd.Parameters.Add("@param_user_id", parent.CurrentUser.Id);
                    cmd.Parameters.Add("@param_lm_id", id);

                    result = Convert.ToInt32(MSSQLCEConn.ExecuteScalar(cmd));
                }

                DbSettings settings = new DbSettings(result, false, parent);
                parent.CurrentUser.Cache[ObjectLifetimeIdentifier.Create(CacheObject.UserLearningModuleSettings, id, Cache.DefaultSettingsValidationTime)] = settings;
                return settings;
            }
        }
Ejemplo n.º 56
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <IdentityOptions>(options =>
            {
                // Password settings.
                options.Password.RequireDigit           = true;
                options.Password.RequireLowercase       = true;
                options.Password.RequireNonAlphanumeric = true;
                options.Password.RequireUppercase       = true;
                options.Password.RequiredLength         = 6;
                options.Password.RequiredUniqueChars    = 1;

                // Lockout settings.
                options.Lockout.DefaultLockoutTimeSpan  = TimeSpan.FromMinutes(5);
                options.Lockout.MaxFailedAccessAttempts = 5;
                options.Lockout.AllowedForNewUsers      = true;

                // User settings.
                options.User.AllowedUserNameCharacters =
                    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";
                options.User.RequireUniqueEmail = false;
            });

            services
            .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
            {
                // Cookie settings
                options.Cookie.HttpOnly = true;
                options.ExpireTimeSpan  = TimeSpan.FromMinutes(5);

                options.LoginPath         = "/api/login";
                options.AccessDeniedPath  = "/api/register";
                options.SlidingExpiration = true;
            });

            var dbSettings = new DbSettings()
            {
                DataBasePath = "db/main.db", Name = "main", Password = ""
            };
            var creator = new SQLiteDBCreator(dbSettings, _logger);

            if (!creator.DatabaseExists())
            {
                creator.CreateEmptyDB();
            }
            var connectionHolder = new SQLiteConnectionProvider(dbSettings, _logger);

            DapperExtensions.DapperExtensions.SqlDialect = new DapperExtensions.Sql.SqliteDialect();
            var database = new Database(connectionHolder.CreateConnection(), new SqlGeneratorImpl(new DapperExtensionsConfiguration(typeof(AutoClassMapper <>), new[] { typeof(SqliteClassMapping).Assembly }, new SqliteDialect())));

            services.AddSingleton <IFileStorage>(new FileStorage("db/images"));
            services.AddSingleton <IDatabase>(database);
            services.AddSingleton <IUserManager, UserManager>();
            services.AddSingleton <IPointManager, PointManager>();
            services.AddSingleton <IPointCommentEntityManager, PointCommentEntityManager>();
            services.AddSingleton <ILikeManager, LikeManager>();

            services.AddLogging(config =>
            {
                config.AddDebug();
                config.AddConsole();
            });
            services.AddMvc(options =>
            {
                options.InputFormatters.Insert(0, new BinaryInputFormatter());
            }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }
Ejemplo n.º 57
0
 /// <summary>
 /// Instantiates a new encapsulated asynchronous database interaction object according to provider, database setting and transaction isolation.
 /// </summary>
 public IDatabaseAsync2 GetDbObjectAsync(string connectionString, Provider provider, DbSettings setting, IsolationLevel isolation)
 {
     return(GetDbObject(connectionString, provider, setting, isolation) as IDatabaseAsync2);
 }
Ejemplo n.º 58
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy(MyAllowOrigins,
                                  builder => builder
                                  // .WithOrigins("http://localhost:63342")
                                  .AllowAnyOrigin()
                                  // .AllowCredentials()
                                  .AllowAnyHeader()
                                  .AllowAnyMethod()
                                  );
            });

            services.Configure <ApiBehaviorOptions>(options => options.SuppressModelStateInvalidFilter = true);
            services.Configure <ApiSettings>(Configuration.GetSection("AppSettings:APISettings"));

            var dbSettings = new DbSettings
            {
                DB_HOST     = Configuration.GetSection("DB_HOST").Value,
                DB_PORT     = Configuration.GetSection("DB_PORT").Value,
                DB_USER     = Configuration.GetSection("DB_USER").Value,
                DB_PASSWORD = Configuration.GetSection("DB_PASSWORD").Value,
                DB_NAME     = Configuration.GetSection("DB_NAME").Value
            };

            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseNpgsql(dbSettings.DbConnectionString,
                                                                           optionsBuilder =>
                                                                           optionsBuilder.MigrationsAssembly(typeof(ApplicationDbContext).Assembly.FullName)));

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                var apiSettings = Configuration.GetSection("AppSettings:APISettings").Get <ApiSettings>();
                // options.RequireHttpsMetadata = true;
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ClockSkew = TimeSpan.Zero,

                    ValidateAudience = true,
                    ValidAudience    = apiSettings.AUDIENCE,

                    ValidateIssuer = true,
                    ValidIssuer    = apiSettings.ISSUER,

                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(apiSettings.PublicKey)),

                    // To allow return custom response for expired token
                    ValidateLifetime = false,
                };
                options.Events = new JwtBearerEvents
                {
                    OnMessageReceived = context =>
                    {
                        var accessToken = context.Request.Query["access_token"];
                        var path        = context.HttpContext.Request.Path;
                        if (!String.IsNullOrEmpty(path) &&
                            path.StartsWithSegments("/api/ws"))
                        {
                            context.Token = accessToken;
                        }

                        return(Task.CompletedTask);
                    }
                };
            });

            services.AddAuthorization();

            services.AddSignalR();

            services.AddControllers(options =>
            {
                options.Filters.Add(typeof(ValidateModelAttribute));
                options.Filters.Add(typeof(StatusCodeFilter));
            })
            .AddFluentValidation(fv =>
            {
                ValidatorConfigurationOverload.Override();
                fv.RegisterValidatorsFromAssemblyContaining <DTO.DependencyInjectionModule>();
            });

            services.AddDirectoryBrowser();

            services.AddSingleton(MappingConfig.GetMapper());

            DependencyInjectionModule.Load(services);
        }
Ejemplo n.º 59
0
 public abstract DbModelUpdater CreateDbModelUpdater(DbSettings settings);
Ejemplo n.º 60
0
        public StudiesContext(DbSettings settings)
        {
            var client = new MongoClient(settings.ConnectionString);

            _databsae = client.GetDatabase(settings.Database);
        }