public async Task <IActionResult> CreateBucket([FromForm] CreateBucketViewModel model)
        {
            var cuser = await GetCurrentUserAsync();

            if (!ModelState.IsValid)
            {
                model.ModelStateValid = false;
                model.Recover(this, cuser);
                return(View(model));
            }
            var app = await _dbContext.Apps.FindAsync(model.AppId);

            if (app == null)
            {
                return(NotFound());
            }
            try
            {
                var token = await _appsContainer.AccessToken(app.AppId, app.AppSecret);

                var result = await _ossApiService.CreateBucketAsync(token, model.NewBucketName, model.OpenToRead, model.OpenToUpload);

                return(RedirectToAction(nameof(AppsController.ViewApp), "Apps", new { id = app.AppId, JustHaveUpdated = true }));
            }
            catch (AiurUnexceptedResponse e)
            {
                ModelState.AddModelError(string.Empty, e.Response.Message);
                model.ModelStateValid = false;
                model.Recover(this, cuser);
                return(View(model));
            }
        }
Esempio n. 2
0
        public async Task <JsonResult> CreateBucket([FromForm] CreateBucketAddressModel model)
        {
            //Update app info
            var app = await APIService.ValidateAccessTokenAsync(model.AccessToken);

            var appLocal = await _dbContext.Apps.Include(t => t.MyBuckets).SingleOrDefaultAsync(t => t.AppId == app.AppId);

            if (appLocal == null)
            {
                appLocal = new OSSApp
                {
                    AppId     = app.AppId,
                    MyBuckets = new List <Bucket>()
                };
                _dbContext.Apps.Add(appLocal);
            }
            //Ensure not exists
            var existing = await _dbContext.Bucket.SingleOrDefaultAsync(t => t.BucketName == model.BucketName);

            if (existing != null)
            {
                return(Json(new AiurProtocal
                {
                    code = ErrorType.NotEnoughResources,
                    message = "There is one bucket already called that name!"
                }));
            }
            //Create and save to database
            var newBucket = new Bucket
            {
                BucketName   = model.BucketName,
                Files        = new List <OSSFile>(),
                OpenToRead   = model.OpenToRead,
                OpenToUpload = model.OpenToUpload
            };

            appLocal.MyBuckets.Add(newBucket);
            await _dbContext.SaveChangesAsync();

            //Create an empty folder
            string DirectoryPath = GetCurrentDirectory() + $@"{_}Storage{_}{newBucket.BucketName}{_}";

            if (Directory.Exists(DirectoryPath) == false)
            {
                Directory.CreateDirectory(DirectoryPath);
            }
            //return model
            var viewModel = new CreateBucketViewModel
            {
                BucketId = newBucket.BucketId,
                code     = ErrorType.Success,
                message  = "Successfully created your buckets!"
            };

            return(Json(viewModel));
        }
        public async Task <IActionResult> CreateBucket(string id)//AppId
        {
            var cuser = await GetCurrentUserAsync();

            var viewModel = new CreateBucketViewModel(this, cuser)
            {
                AppId = id,
            };

            return(View(viewModel));
        }
Esempio n. 4
0
        public async void Execute(object parameter)
        {
            CreateBucketViewModel createBucketViewModel = parameter as CreateBucketViewModel;

            try
            {
                await _bucketService.CreateBucketAsync(createBucketViewModel.BucketName);
            }
            catch (Exception ex)
            {
                Windows.UI.Popups.MessageDialog dialog = new Windows.UI.Popups.MessageDialog("Could not create bucket - " + ex.Message);
                await dialog.ShowAsync();

                return;
            }
            var frame = (Windows.UI.Xaml.Controls.Frame)Windows.UI.Xaml.Window.Current.Content;

            frame.Navigate(typeof(BucketListPage));
        }
 public CreateBucketPage()
 {
     this.InitializeComponent();
     this.DataContext = _vm = new CreateBucketViewModel(Factory.BucketService);
     _vm.DoneLoading();
 }