public async Task <IActionResult> ImagePost() { Console.WriteLine("Getting request"); try { var imagesBaseFilePath = settings.MiniPonicsImagesBaseFilePath; var file = Request.Form.Files[0]; var now = DateTimeOffset.Now.TruncateToMinute(); if (file.Length > 0) { var fileExtension = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim() .Split(new[] { '.' }) .LastOrDefault() .ToString(); var fileName = $"{now:O}.{fileExtension}"; var directory = Path.Combine( imagesBaseFilePath, now.Year.ToString(), now.Month.ToString(), now.Day.ToString()); Directory.CreateDirectory(directory); var fullPath = Path.Combine(directory, fileName); await using (var stream = new FileStream(fullPath, FileMode.Create)) { await file.CopyToAsync(stream); await miniPonicsImageDataRepository.Save(new MiniPonicsImageData { EventDate = now, ImageFilePath = fullPath }); } return(NoContent()); } return(BadRequest()); } catch (Exception e) { Console.WriteLine($"Error in {nameof(MiniPonicsController)}: {e}"); return(StatusCode(500, "Internal server error")); } }
public async Task <IActionResult> Post([FromBody] DarkSkyLog forecast) { await darkSkyLogRepository.Save(forecast); return(NoContent()); }