public async Task <IActionResult> CreateVideo(VideoCreateDto videoCreateDto) { var video = _mapper.Map <Video>(videoCreateDto); video.DatePosted = DateTime.Now; _repos.Add(video); if (await _repos.SaveAll()) { return(CreatedAtRoute("GetVideo", new { id = video.Id }, video)); } return(BadRequest("Failed adding video")); }
public async Task <IActionResult> AddVideo(int propertyId, [FromForm] VideoCreateDto videoCreateDto) { int userId = Convert.ToInt32(_userManager.GetUserId(User)); if (userId != _context.Properties.FindAsync(propertyId).Result.UserId) { return(Unauthorized()); } var propertyFromRepo = await _repo.GetProperty(propertyId); var file = videoCreateDto.VideoFile; var uploadResult = new VideoUploadResult(); if (file.Length > 0) { using (var stream = file.OpenReadStream()) { var uploadParams = new VideoUploadParams() { File = new FileDescription(file.Name, stream), Transformation = new Transformation().Width(500) .Height(500) }; uploadResult = _cloudinary.Upload(uploadParams); } } videoCreateDto.VideoUrl = uploadResult.Uri.ToString(); videoCreateDto.VideoPublicId = uploadResult.PublicId; var video = _mapper.Map <Video>(videoCreateDto); propertyFromRepo.Videos.Add(video); if (await _repo.SaveAll()) { var videoToReturn = _mapper.Map <VideoReturnDto>(video); return(CreatedAtRoute("GetVideo", new { id = propertyId }, videoToReturn)); } return(BadRequest("Failed to add video")); }