public virtual async Task <IActionResult> PostAsync([FromBody] Entities.EventInfo eventRequest) { try { if (eventRequest == null) { return(BadRequest("No Event data")); } var eventInfo = new Entities.EventInfo { Id = string.IsNullOrEmpty(eventRequest.Id) ? Guid.NewGuid().ToString() : eventRequest.Id, Source = eventRequest.Source, Name = eventRequest.Name, Time = eventRequest.Time, Payload = eventRequest.Payload }; await eventsRepository.CreateAsync(eventInfo); await PublishEventAsync(eventRequest.Name, JsonConvert.SerializeObject(eventInfo)); return(Created(this.BuildLink($"/events/{eventInfo.Id}"), eventInfo)); } catch (Exception e) { return(this.InternalServerError(e.FlattenMessages())); } }
public virtual async Task <IActionResult> PostFileAsync( [FromForm] string source, [FromForm] string assetId, [FromForm] string filename, [FromForm] string format, [FromForm(Name = FileOperationFilter.FILE_PAYLOAD_PARM)] IFormFile fileData) { try { if (fileData == null) { return(BadRequest("No file data")); } var id = Guid.NewGuid().ToString(); var fileInfo = new Entities.FileInfo { Id = id, Source = source, AssetId = assetId, Filename = filename, Format = format, DownloadUri = this.BuildLink($"/files/{id}/payload") }; await filesRepository.CreateAsync(fileInfo); using (var stream = fileData.OpenReadStream()) { await blobRepository.UploadAsync(new BlobInfo(id), stream); } return(Created(this.BuildLink($"/files/{id}"), fileInfo)); } catch (Exception e) { return(this.InternalServerError(e.FlattenMessages())); } }