示例#1
0
        public async Task <ActionResult> CreatePersonal(PersonalStorageCreateModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var newStorage = Storage.NewStorage(model.Name, User.Identity.Name, StorageType.Personal);

            Mapper.Map(model, newStorage);

            try
            {
                BlobStorageConfig.Initialize(newStorage);
            }
            catch (SqlException exception)
            {
                ModelState.AddModelError("", exception.Message);
                return(View(model));
            }

            await _storageDbCommand.CreateAsync(newStorage);

            return(RedirectToAction("Index"));
        }
示例#2
0
        /// <summary></summary>
        /// <param name="connectionString"></param>
        /// <param name="migrationEnable"></param>
        public static void Start(string connectionString, bool migrationEnable = true)
        {
            SqlMapper.AddTypeMap(typeof(DateTime), DbType.DateTime2);
            SqlMapper.AddTypeMap(typeof(DateTime?), DbType.DateTime2);

            if (!migrationEnable)
            {
                return;
            }

            DatabaseHelper.CreateIfNotExists(connectionString);

            MigrationRunnerHelper.MigrateToLatest(connectionString);

            var storages = new StorageDbCommand(connectionString).GetAllAsync().Result;

            foreach (var storage in storages)
            {
                try
                {
                    BlobStorageConfig.Initialize(storage);
                }
                catch (Exception) {}
            }
        }
        public void InitializeDatabases()
        {
            var storageDbCommand = new StorageDbCommand(Constants.ConnectionString);

            foreach (var storage in this)
            {
                BlobStorageConfig.Initialize(storage);
                TestUtilities.TruncateAllTables(storage.ConnectionProperties.ToConnectionString());
                storageDbCommand.CreateAsync(storage).Wait();
            }
        }
示例#4
0
        public async Task <ActionResult> EditPersonal(string id, PersonalStorageEditModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var storage = await _storageDbCommand.FindAsync(id);

            if (storage == null)
            {
                return(HttpNotFound());
            }

            if (storage.Owner != User.Identity.Name)
            {
                return(new HttpUnauthorizedResult());
            }

            Mapper.Map(model, storage);
            storage.LastModifiedUtcDateTime = DateTime.UtcNow;

            try
            {
                BlobStorageConfig.Initialize(storage);
            }
            catch (SqlException exception)
            {
                ModelState.AddModelError("", exception.Message);
                return(View(model));
            }

            await _storageDbCommand.UpdateAsync(id, storage);

            return(RedirectToAction("Index"));
        }