Пример #1
0
        /// <summary>
        /// Creates database if it does not exist.
        /// </summary>
        /// <param name="builder">The <see cref="IApplicationBuilder"/> instance.</param>
        /// <param name="env">The <see cref="IApplicationBuilder"/> instance.</param>
        public static void CreateDatabaseSchema(IApplicationBuilder builder, IWebHostEnvironment env)
        {
            bool                       databaseExists             = false;
            DavContextConfig           contextConfig              = builder.ApplicationServices.GetService <IOptions <DavContextConfig> >().Value;
            SqlConnectionStringBuilder sqlConnectionStringBuilder = new SqlConnectionStringBuilder(contextConfig.ConnectionString);
            // extracts initial catalog name
            string databaseName = sqlConnectionStringBuilder.InitialCatalog;

            // sets initial catalog to master
            sqlConnectionStringBuilder.InitialCatalog = "master";

            using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionStringBuilder.ConnectionString))
            {
                sqlConnection.Open();
                using (SqlCommand sqlCommand = new SqlCommand($"SELECT count(*) from dbo.sysdatabases where name = '{databaseName}'", sqlConnection))
                {
                    databaseExists = ((int)sqlCommand.ExecuteScalar() != 0);
                }

                if (!databaseExists)
                {
                    var scriptFi = new FileInfo(Path.Combine(env.ContentRootPath, "WebDAVServerImpl\\DB.sql"));
                    if (!scriptFi.Exists)
                    {
                        scriptFi = new FileInfo(Path.Combine(env.ContentRootPath, "DB.sql"));
                    }
                    if (scriptFi.Exists)
                    {
                        RunScript(sqlConnection, File.ReadAllText(scriptFi.FullName));
                    }
                }
            }
        }
Пример #2
0
 /// <summary>
 /// Initializes a new instance of the class.
 /// </summary>
 /// <param name="userIdentity">User Identity.</param>
 /// <param name="logger"><see cref="ILogger"/> instance.</param>
 /// <param name="configContext">WebDAV Context configuration.</param>
 /// <param name="configUsers">WebDAV Users configuration.</param>
 public DavContext(IHttpContextAccessor httpContextAccessor, ILogger logger, IOptions <DavContextConfig> configContext, IOptions <DavUsersConfig> configUsers)
     : base(httpContextAccessor.HttpContext)
 {
     this.contextConfig = configContext.Value;
     this.Users         = configUsers.Value.Users;
     this.Identity      = httpContextAccessor.HttpContext.User.Identity;
     this.Logger        = logger;
 }
Пример #3
0
 /// <summary>
 /// Initializes a new instance of the class.
 /// </summary>
 /// <param name="httpContextAccessor">Http context.</param>
 /// <param name="config">WebDAV Context configuration.</param>
 /// <param name="socketService">Singleton instance of <see cref="WebSocketsService"/>.</param>
 public DavContext(IHttpContextAccessor httpContextAccessor, IOptions <DavContextConfig> config
                   , WebSocketsService socketService
                   )
     : base(httpContextAccessor.HttpContext)
 {
     this.contextConfig = config.Value;
     this.currentUser   = httpContextAccessor.HttpContext.User;
     this.socketService = socketService;
 }
Пример #4
0
        /// <summary>
        /// Initializes new instance of CognitiveSearchService.
        /// </summary>
        /// <param name="searchConfig">Search configuration.</param>
        /// <param name="davConfig">Context configuration.</param>
        public CognitiveSearchService(IOptions <SearchConfig> searchConfig, IOptions <DavContextConfig> davConfig)
        {
            SearchConfig config = searchConfig.Value;

            if (!string.IsNullOrEmpty(config.ApiKey))
            {
                DavContextConfig dcConfig         = davConfig.Value;
                string           searchServiceUri = "https://" + config.ServiceName + ".search.windows.net";
                searchClient = new SearchClient(new Uri(searchServiceUri), config.IndexName,
                                                new AzureKeyCredential(config.ApiKey));
                contextPath = "https://" + dcConfig.AzureStorageAccountName + ".blob.core.windows.net" + "/" + dcConfig.DataLakeContainerName;
            }
        }
Пример #5
0
        /// <summary>
        /// Initializes new instance of DataLakeStoreService.
        /// </summary>
        /// <param name="configuration">Context configuration.</param>
        /// <param name="httpContextAccessor">Http context.</param>
        public DataLakeStoreService(IOptions <DavContextConfig> configuration, IHttpContextAccessor httpContextAccessor)
        {
            var token = httpContextAccessor.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "access_token")?.Value;

            if (token == null)
            {
                notAuthorized = true;
            }
            DavContextConfig config = configuration.Value;
            var credential          = new DataLakeTokenCredential(token, DateTimeOffset.MaxValue);
            var dfsUri = "https://" + config.AzureStorageAccountName + ".dfs.core.windows.net";

            dataLakeClient = new DataLakeServiceClient(new Uri(dfsUri), credential).GetFileSystemClient(config.DataLakeContainerName);
        }