public async Task <IActionResult> Generate(GenerateAddressModel model) { var app = await _coreApiService.ValidateAccessTokenAsync(model.AccessToken); var appLocal = await _dbContext.Apps.SingleOrDefaultAsync(t => t.AppId == app.AppId); var file = await _dbContext.OSSFile.Include(t => t.BelongingBucket).SingleOrDefaultAsync(t => t.FileKey == model.Id); if (file == null || file.BelongingBucket.BelongingAppId != appLocal.AppId) { return(NotFound()); } // Generate secret var newSecret = new Secret { Value = StringOperation.RandomString(15), FileId = file.FileKey }; _dbContext.Secrets.Add(newSecret); await _dbContext.SaveChangesAsync(); return(Json(new AiurValue <string>(newSecret.Value) { Code = ErrorType.Success, Message = "Successfully created your onetime secret!" })); }
public async Task <IActionResult> Generate(GenerateAddressModel model) { var appid = _tokenManager.ValidateAccessToken(model.AccessToken); var file = await _dbContext .OSSFile .Include(t => t.BelongingBucket) .Where(t => t.BelongingBucket.BelongingAppId == appid) .SingleOrDefaultAsync(t => t.FileKey == model.Id); if (file == null) { return(this.Protocol(ErrorType.NotFound, "Could not get your file in your apps' buckets. The file may be out dated!")); } // Generate secret var newSecret = new Secret { Value = Guid.NewGuid().ToString("N"), FileId = file.FileKey, MaxUseTime = model.MaxUseTimes }; _dbContext.Secrets.Add(newSecret); await _dbContext.SaveChangesAsync(); return(Json(new AiurValue <string>(newSecret.Value) { Code = ErrorType.Success, Message = "Successfully created your onetime secret!" })); }