public async Task <List <VideoDetailsModel> > SearchVideo(string searchVideo) { List <VideoDetailsModel> videosList = new List <VideoDetailsModel>(); //Se obtiene la respuesta de la busqueda del video desde VideoIndexer var result = Task.Run(() => GetAccountAccessTokenAsync()); result.Wait(); var accessToken = result.Result.Trim('\"'); var queryString = HttpUtility.ParseQueryString(string.Empty); queryString["query"] = searchVideo; queryString["pageSize"] = "25"; queryString["skip"] = "0"; queryString["accessToken"] = accessToken; var uri = $"https://api.videoindexer.ai/{Constants.LOCATION}/Accounts/{Constants.ACCOUNTID}/Videos/Search?{queryString}"; var client = new HttpClient(); var responseMessage = await client.GetAsync(uri); var responseMessageResult = await responseMessage.Content.ReadAsStringAsync(); var jsonResult = JsonConvert.DeserializeObject <VideoIndexerModel>(responseMessageResult); queryString.Clear(); queryString["format"] = "Jpeg"; queryString["accessToken"] = accessToken; foreach (var videoDetails in jsonResult.results) { VideoDetailsModel videoDetail = new VideoDetailsModel(); videoDetail.VideoTitle = videoDetails.name; videoDetail.Duration = videoDetails.searchMatches[0].startTime; videoDetail.UrlVideo = $"https://www.videoindexer.ai/accounts/{Constants.ACCOUNTID}/videos/{videoDetails.id}/?"; videoDetail.Thumbnaill = $"https://api.videoindexer.ai/{Constants.LOCATION}/Accounts/{Constants.ACCOUNTID}/Videos/{videoDetails.id}/Thumbnails/{videoDetails.thumbnailId}?{queryString}"; videoDetail.Description = videoDetails.searchMatches[0].text; var url = Task.Run(() => GetVideoSourceFileDownloadUrl(videoDetails.id)); url.Wait(); videoDetail.DownloadVideoUrl = url.Result.Trim('\"'); videosList.Add(videoDetail); /* * var videoTitle = videoDetails.name; * var duration = videoDetails.searchMatches[0].startTime; * var urlVideo = $"https://www.videoindexer.ai/accounts/{Constants.ACCOUNTID}/videos/{videoDetails.id}/?"; * var thumbnaill = $"https://api.videoindexer.ai/{Constants.LOCATION}/Accounts/{Constants.ACCOUNTID}/Videos/{videoDetails.id}/Thumbnails/{videoDetails.thumbnailId}?{queryString}"; * var description = videoDetails.searchMatches[0].text; * var url = Task.Run(() => GetVideoSourceFileDownloadUrl(videoDetails.id)); * url.Wait(); * var downloadVideoUrl = url.Result.Trim('\"');*/ } return(videosList); }
public ActionResult addVideoTitle() { // Task 9 var data = new VideoDetailsModel(); data.ActorIds = new int[0]; data.DateReleased = DateTime.Today; data.Actors = new SelectList(db.Actors, "ActorId", "ActorFirstName"); ViewBag.ProducerId = new SelectList(db.Producers, "ProducerId", "ProducerFirstName"); ViewBag.StudioID = new SelectList(db.Studios, "StudioId", "StudioName"); ViewBag.VidCatId = new SelectList(db.VideoCategories, "VidCatId", "VidCatName"); return(View(data)); }
public ActionResult addVideoTitle([Bind(Include = "VideoId,Title,DateReleased,StandardCharge,PenaltyCharge,ProducerId,StudioId,VidCatId,ActorIds")] VideoDetailsModel data) { // Task 9 if (ModelState.IsValid) { if (data.ActorIds == null) { TempData["ErrorMsg"] = "At least one cast member required"; } else { var video = new Video { Title = data.Title, ProducerId = data.ProducerId, StudioId = data.StudioId, VidCatId = data.VidCatId, DateReleased = data.DateReleased, StandardCharge = data.StandardCharge, PenaltyCharge = data.PenaltyCharge }; db.Videos.Add(video); db.SaveChanges(); var cast = data.ActorIds.Select(x => new CastMember { ActorId = x, VideoId = video.VideoId }); db.CastMembers.AddRange(cast); db.SaveChanges(); TempData["SuccessMsg"] = "Added Video!"; return(RedirectToAction("VideoDetails")); } } data.Actors = new SelectList(db.Actors, "ActorId", "ActorFirstName", data.ActorIds); ViewBag.ProducerId = new SelectList(db.Producers, "ProducerId", "ProducerFirstName", data.ProducerId); ViewBag.StudioID = new SelectList(db.Studios, "StudioId", "StudioName", data.StudioId); ViewBag.VidCatId = new SelectList(db.VideoCategories, "VidCatId", "VidCatName", data.VidCatId); return(View(data)); }