Exemple #1
0
        public async Task <IActionResult> Edit(int id, [FromForm] EpisodeRequest model)
        {
            var episode = _episodeRepository.FindById(id);

            if (!ModelState.IsValid || episode == null)
            {
                return(BadRequest(ErrorResponse.InvalidPayload));
            }

            episode.Name = model.Name;

            if (model.File != null)
            {
                var filePath = $"/{DateTime.Now.ToFileTime()}_{model.File.FileName}";
                using (var stream = new FileStream($"wwwroot/{filePath}", FileMode.Create))
                {
                    var oldPath = $"wwwroot{episode.Url}";
                    if (System.IO.File.Exists(oldPath))
                    {
                        System.IO.File.Delete(oldPath);
                    }

                    await model.File.CopyToAsync(stream);

                    episode.Url = filePath;
                }
            }

            _episodeRepository.Update(episode);
            await _unitOfWork.SaveChangesAsync();

            return(Ok());
        }