public async Task <JsonResult> ViewMyBuckets(ViewMyBucketsAddressModel model) { var app = await ApiService.ValidateAccessTokenAsync(model.AccessToken); var appLocal = await _dbContext.Apps.SingleOrDefaultAsync(t => t.AppId == app.AppId); if (appLocal == null) { appLocal = new OSSApp { AppId = app.AppId, MyBuckets = new List <Bucket>() }; _dbContext.Apps.Add(appLocal); await _dbContext.SaveChangesAsync(); } var buckets = await _dbContext .Bucket .Include(t => t.Files) .Where(t => t.BelongingAppId == app.AppId) .ToListAsync(); buckets.ForEach(t => t.FileCount = t.Files.Count()); var viewModel = new ViewMyBucketsViewModel { AppId = appLocal.AppId, Buckets = buckets, code = ErrorType.Success, message = "Successfully get your buckets!" }; return(Json(viewModel)); }
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)); }