Exemple #1
0
        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));
 }