public async Task <ActionResult> Create(NoticeViewModel form, CancellationToken cancellationToken) { try { if (!ModelState.IsValid) { return(View(form)); } var file = form.ImageFile.OpenReadStream(); MemoryStream fileMemoryStream = null; if (MimetypesToConvert.Contains(form.ImageFile.ContentType)) { fileMemoryStream = file.ToWebpMemoryStream(); } else { fileMemoryStream = await file.ToMemoryStreamAsync() .ConfigureAwait(false); } var filename = $"Images/Notice/{Guid.NewGuid()}.webp"; await _noticeRepository.FileUploadAsync(filename, fileMemoryStream, "image/webp", cancellationToken) .ConfigureAwait(false); await fileMemoryStream.DisposeAsync() .ConfigureAwait(false); form.Image = filename; await _noticeRepository.AddAsync(form, cancellationToken) .ConfigureAwait(false); return(RedirectToAction(nameof(Index))); } catch (Exception ex) { return(View()); } }