public async Task <ActionResult> Index()
        {
            var accessToken = await AadHelper.GetAccessToken();

            var repo = new VideoChannelRepository(accessToken);

            var channels = await repo.GetChannels(false);

            return(View(channels));
        }
        public async Task <ActionResult> Index(string channelId)
        {
            var accessToken = await AadHelper.GetAccessToken();

            var repo = new VideoChannelRepository(accessToken);

            var channel = await repo.GetChannel(channelId);

            var videos = await repo.GetChannelVideos(channelId);

            var viewModel = new VideoListViewModel {
                ChannelId    = channelId,
                ChannelTitle = channel.Title,
                Videos       = videos
            };

            return(View(viewModel));
        }
示例#3
0
        public async Task <ActionResult> Index(string channelId, string videoId)
        {
            var accessToken = await AadHelper.GetAccessTokenForSharePoint();

            var repo  = new VideoChannelRepository(accessToken);
            var video = await repo.GetVideo(channelId, videoId);

            var playerModel = new PlayerViewModel
            {
                ChannelId      = video.ChannelId,
                VideoId        = video.VideoId,
                Title          = video.Title,
                DisplayFormUrl = video.DisplayFormUrl,
                ThumbnailUrl   = video.ThumbnailUrl
            };

            return(View(playerModel));
        }
示例#4
0
        public async Task <HttpResponseMessage> GetVideoThumbnail(string channelid, string videoid, string preferredwidth)
        {
            var accessTokenSharePoint = await AadHelper.GetAccessTokenForSharePoint();

            var repoSP = new VideoChannelRepository(accessTokenSharePoint);

            byte[] imgData = await repoSP.GetVideoThumbnail(channelid, videoid, preferredwidth);

            if (imgData == null)
            {
                return(null);
            }
            MemoryStream        ms       = new MemoryStream(imgData);
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);

            response.Content = new StreamContent(ms);
            response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("image/png");
            return(response);
        }
        public async Task <ActionResult> Create([Bind(Include = "ChannelId,Title,Description")] Video video, HttpPostedFileBase upload)
        {
            var accessToken = await AadHelper.GetAccessToken();

            var repo = new VideoChannelRepository(accessToken);

            // if a file is uploaded, add to video & upload
            if (upload != null && upload.ContentLength > 0)
            {
                video.FileName = upload.FileName;
                using (var reader = new System.IO.BinaryReader(upload.InputStream)) {
                    video.FileContent = reader.ReadBytes(upload.ContentLength);
                }

                await repo.UploadVideo(video);
            }

            return(RedirectToRoute("ChannelVideos", new RouteValueDictionary(new { channelId = video.ChannelId, action = "Index" })));
        }
        public async Task <ActionResult> Index(string channelId)
        {
            try
            {
                var accessTokenSharePoint = await AadHelper.GetAccessTokenForSharePoint();

                var accessTokenMSGraph = await AadHelper.GetAccessTokenForMicrosoftGraph();

                var sharePointRepository    = new VideoChannelRepository(accessTokenSharePoint);
                var groupsRepository        = new GroupsRepository(graphClient);
                var subscriptionsRepository = new SubscriptionsRepository(graphClient, this.Session, HttpRuntime.Cache);

                var channel = await sharePointRepository.GetChannel(channelId);

                var videos = await sharePointRepository.GetChannelVideos(channelId);

                var groups = await groupsRepository.GetGroups();

                var viewModel = new VideoListViewModel
                {
                    ChannelId    = channelId,
                    ChannelTitle = channel.Title,
                    Videos       = videos,
                    Groups       = groups
                };

                // integration of the webhooks example
                Microsoft.Graph.Subscription result = await subscriptionsRepository.CreateOrReuseSubscription();

                return(View(viewModel));
            }
            catch (Exception ex)
            {
                if (ex is AdalException)
                {
                    // let the ActionFilterAttribute take care of it
                    throw ex;
                }

                return(RedirectToAction("Index", "Error", new { message = ex.Message }));
            }
        }
        public async Task <ActionResult> Delete(string channelId, string videoId)
        {
            var accessToken = await AadHelper.GetAccessTokenForSharePoint();

            var repo = new VideoChannelRepository(accessToken);

            if (channelId != null && videoId != null)
            {
                await repo.DeleteChannelVideo(channelId, videoId);
            }

            // if channelid provided, use this
            if (channelId != null)
            {
                return(RedirectToRoute("ChannelVideos", new RouteValueDictionary(new { channelId = channelId, action = "Index" })));
            }
            else
            {
                return(RedirectToRoute("Default", new { controller = "Channel", action = "Index" }));
            }
        }
        public async Task <ActionResult> EventDetails(string EventId)
        {
            var accessTokenSharePoint = await AadHelper.GetAccessTokenForSharePoint();

            var repoSP = new VideoChannelRepository(accessTokenSharePoint);

            //OLD MOD tenant
            //string channelId = "037b317f-2fcf-451a-a618-99dfb45aa2f1";

            //TODO Retrieve from schema extension
            string channelId = "7710364b-6748-49ef-9a47-002240b994fd";

            var viewmodel = new EventDetailsViewModel
            {
                Event  = await managedEventRepository.GetManagedEventById(EventId),
                Videos = await repoSP.GetChannelVideos(channelId),
                GroupCalendarEvents = await managedEventRepository.GetGroupCalendarEvents(EventId),
                BudgetStatus        = await managedEventRepository.GetBudgetFromExcelsheet(EventId, SettingsHelper.drive_path_to_excelsheet),
                PlanningStatus      = "Good"
            };

            return(View(viewmodel));
        }