public async Task <IHttpActionResult> Upload() { var file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null; var upload = new UploadSong(); if (file != null) { UploadSongResult result = await upload.UploadFileSong(file); if (!String.IsNullOrEmpty(result.Error)) { ModelState.AddModelError("Upload", result.Error); return(BadRequest(ModelState)); } var link = new LinkModel { Id = result.Id, OwnerId = User.Identity.GetUserId(), MimeType = result.MimeType }; return(Ok(link)); } else { ModelState.AddModelError("FileError", "File was not received by the server"); return(BadRequest(ModelState)); } }
public async Task <IActionResult> Upload(SongFormModel model) { if (model.File is null) { return(View(model) .WithErrorMessage("Please, choose a file!")); } // Business validation? if (!model.File.IsSong() || model.File.Length > SongMaxLength) { return(View(model) .WithErrorMessage($"Your submission should be an audio file and no more than {SongMaxMBs} MBs in size!")); } string fileExtension = model.File .GetFileExtension(); UploadSong command = new UploadSong() { UploaderId = this.User?.FindFirst(ClaimTypes.NameIdentifier).Value, Title = model.Title, FileExtension = fileExtension, ReleasedYear = model.ReleasedYear, Singer = model.Singer, SongFile = model.File.ToByteArray() }; string message = await this.CallServiceAsync( async() => await this.uploadSong.ExecuteAsync(command)); if (message != null) { return(View(model) .WithErrorMessage(message)); } return(View() .WithSuccessMessage("Song uploaded successfully.")); }