public IActionResult UploadVideoforPostman([FromForm] IFormFile video, [FromForm] string title, [FromForm] int sectionId) { if (!_sectionRepository.SectionExists(sectionId)) { return(NotFound()); } var section = _sectionRepository.GetSection(sectionId); string uniqueFileName = null; if (!ModelState.IsValid) { return(BadRequest()); } string uploadsfolder = Path.Combine(_hostingEnvironment.WebRootPath, "Videos"); uniqueFileName = Guid.NewGuid().ToString() + "_" + video.FileName; string filePath = Path.Combine(uploadsfolder, uniqueFileName); using (FileStream fileStream = new FileStream(filePath, FileMode.Create)) { video.CopyTo(fileStream); } Video newVideo = new Video { Title = title, VideoPath = uniqueFileName, Section = section }; if (!_videoRepository.CreateVideo(newVideo)) { return(BadRequest()); } return(CreatedAtRoute("GetVideo", new { videoId = newVideo.Id }, video)); }
public async Task <long> CreateVideo(long userId, CreateVideoVm model, string basePath) { if (!await _foldersRepository.UserHasAccessToFolder(model.UserId, model.FolderId)) { throw new AccessDeniedException(); } model.LinkCode = StringExtensions.GenerateUniqueRandomToken(); model.LinkUrl = $"{_commonSettings.ApplicationUrl}/api/video/stream/{model.LinkCode}"; var videoId = await _videoRepository.CreateVideo(userId, _mapper.Map <CreateVideoDto>(model)); var userVideoFolder = Path.Combine(basePath, _commonSettings.UserVideosFolder); if (!Directory.Exists(userVideoFolder)) { Directory.CreateDirectory(userVideoFolder); } var videoFileDestinationPath = Path.Combine(userVideoFolder, $"{videoId}{model.Extension}"); await using (var fileStream = new FileStream(videoFileDestinationPath, FileMode.Create)) { await model.VideoFile.CopyToAsync(fileStream); } var videoImagesFolder = Path.Combine(basePath, _commonSettings.VideoImagesFolder); if (!Directory.Exists(videoImagesFolder)) { Directory.CreateDirectory(videoImagesFolder); } var thumbnailDestinationPath = Path.Combine(videoImagesFolder, $"{videoId}.png"); VideoHelpers.GenerateThumbNail(basePath, videoFileDestinationPath, thumbnailDestinationPath); var duration = VideoHelpers.GetVideoDuration(basePath, videoFileDestinationPath); await _videoRepository.UpdateVideoInfo(new UpdateVideoInfoDto { Duration = duration, ThumbnailUrl = $"{_commonSettings.ApplicationUrl}/api/video/thumbnail/{videoId}", Id = videoId, LocationUrl = videoFileDestinationPath }); return(videoId); }
public void CreateVideo(string name, string genre) { videoRepository.CreateVideo(name, genre); }
public ActionResult Create(Video video) { try { if (Session["UserAccountID"] == null) { return(RedirectToAction("Validate", "Login")); } User user = (User)Session["User"]; ViewData["LoginInfo"] = Utility.BuildUserAccountString(user.Username, Convert.ToString(Session["UserAccountName"])); if (user.IsAdmin) { ViewData["txtIsAdmin"] = "true"; } else { ViewData["txtIsAdmin"] = "false"; } if (ModelState.IsValid) { // Set NULLs to Empty Strings video = FillNulls(video); video.AccountID = Convert.ToInt32(Session["UserAccountID"]); Guid fileguid = Guid.NewGuid(); if (Request.Form["lstFile"] != null && !String.IsNullOrEmpty(Request.Form["lstFile"].ToString().Trim())) { video.OriginalFilename = Request.Form["lstFile"].ToString().Trim(); if (video.OriginalFilename != "0") { string extension = video.OriginalFilename.Substring(video.OriginalFilename.LastIndexOf('.')); video.StoredFilename = fileguid + extension; } else { video.OriginalFilename = String.Empty; } } else { video.OriginalFilename = String.Empty; video.StoredFilename = String.Empty; } string validation = ValidateInput(video); if (!String.IsNullOrEmpty(validation)) { ViewData["ValidationMessage"] = validation; ViewData["FileList"] = new SelectList(BuildFileList(Request.Form["lstFile"].ToString().Trim()), "Value", "Text", video.OriginalFilename); ViewData["VideoURL"] = selectedfile; return(View(video)); } else { try { // Move the video string oldvideo = Server.MapPath(@"~/UploadedFiles"); if (!oldvideo.EndsWith(@"\")) { oldvideo += @"\"; } oldvideo += Convert.ToString(Session["UserAccountID"]) + @"\Videos\" + video.OriginalFilename; string newvideo = Server.MapPath(@"~/Media"); if (!newvideo.EndsWith(@"\")) { newvideo += @"\"; } newvideo += Convert.ToString(Session["UserAccountID"]) + @"\Videos\" + video.StoredFilename; System.IO.File.Copy(oldvideo, newvideo); System.IO.File.Delete(oldvideo); } catch { ViewData["ValidationMessage"] = "Failed to copy file."; ViewData["FileList"] = new SelectList(BuildFileList(Request.Form["lstFile"].ToString().Trim()), "Value", "Text", video.OriginalFilename); ViewData["VideoURL"] = selectedfile; return(View(video)); } repository.CreateVideo(video); CommonMethods.CreateActivityLog((User)Session["User"], "Video", "Add", "Added video '" + video.VideoName + "' - ID: " + video.VideoID.ToString()); return(RedirectToAction("Index")); } } return(View(video)); } catch (Exception ex) { Helpers.SetupApplicationError("Video", "Create POST", ex.Message); return(RedirectToAction("Index", "ApplicationError")); } }
public Video Create(Video video) { return(_videoRepository.CreateVideo(video)); }
public Video CreateVideo(Video video) { return(_videoRepo.CreateVideo(video)); }