public ActionResult HandleClientCode([FromUri]string code)
        {
            var httpClient = new HttpClient();
            var exchangeUri = "https://accounts.google.com/o/oauth2/token";
            var queryString = System.Web.HttpUtility.ParseQueryString(string.Empty);

            queryString["code"] = code;
            queryString["client_id"] = "585224365875-s7phb7mlduaa5e93r2qojjldcgi4o2vj.apps.googleusercontent.com";
            queryString["client_secret"] = "Naxgfm0K31CxxlFiX8Ch723m";
            queryString["redirect_uri"] = "http://localhost:55102/youtube/HandleClientCode";
            queryString["grant_type"] = "authorization_code";

            var content = new StringContent(queryString.ToString(), Encoding.UTF8, "application/x-www-form-urlencoded");
            var exchangePostResponse = httpClient.PostAsync(exchangeUri, content).Result;
            var resp = exchangePostResponse.Content.ReadAsStringAsync().Result;

            var googleResponse = new JavaScriptSerializer().Deserialize<TokenInfo>(resp);

            var databaseInteraction = new MongoDbInteraction(new MongoDbConnection { CollectionName = "googleAuthorization", DatabaseName = "StrawHatEntertainment" },
                                                             new MongoClient("mongodb://localhost"));

            var result = databaseInteraction.Log(googleResponse);

            return View("~/Views/Home/Index.cshtml");
        }
Example #2
0
        public BlogData GetSpecificBlog(int blogId)
        {
            var databaseInteraction = new MongoDbInteraction(new MongoDbConnection { CollectionName = "blogs", DatabaseName = "StrawHatEntertainment" },
                                                 new MongoClient("mongodb://localhost"));
            var result = databaseInteraction.GetWithFilterWithoutId(Builders<BsonDocument>.Filter.Eq("BlogId", blogId)).Result;

            return BsonSerializer.Deserialize<BlogData>(result[0]);
        }
Example #3
0
        public void Post(BlogData blogData)
        {
            var databaseInteraction = new MongoDbInteraction(new MongoDbConnection { CollectionName = "blogs", DatabaseName = "StrawHatEntertainment" },
                                                 new MongoClient("mongodb://localhost"));
            var blogs = databaseInteraction.GetAscendingWithoutId(Builders<BsonDocument>.Sort.Ascending("BlogID")).Result;
            blogData.BlogId = blogs.Count > 0 ? BsonSerializer.Deserialize<BlogData>(blogs[0]).BlogId + 1 : 0;

            var result = databaseInteraction.Log(blogData);
        }
Example #4
0
        public List<BlogData> Get()
        {
            var databaseInteraction = new MongoDbInteraction(new MongoDbConnection { CollectionName = "blogs", DatabaseName = "StrawHatEntertainment" },
                                                             new MongoClient("mongodb://localhost"));
            var result = databaseInteraction.FindAllWithoutId<BsonDocument>().Result;
            var blogList = new List<BlogData>();

            result.ForEach(x => blogList.Add(BsonSerializer.Deserialize<BlogData>(x)));

            return blogList;
        }
        public VideoWithLatest Get()
        {
            //var videos = new List<Video>();
            var youtubeOperations = new YoutubeOperations();

            var databaseInteraction = new MongoDbInteraction(new MongoDbConnection { CollectionName = "videos", DatabaseName = "StrawHatEntertainment" },
                                                             new MongoClient("mongodb://localhost"));

            var videos = databaseInteraction.FindAll<Videos>().Result;
            //var tokenInfo = BsonSerializer.Deserialize<TokenInfo>(databaseInteraction.FindAll<BsonDocument>().Result[0]);

            //youtubeOperations.GetVideoList(tokenInfo, videos);
            //var videoList = videos.Where(x => x.VideoList.Any()).ToList();
            var videoWithLatest = new VideoWithLatest();
            videoWithLatest.latestVideo = videos.Select(x => x.VideoList.OrderByDescending(y => y.PublishedDate).FirstOrDefault()).FirstOrDefault();
            videoWithLatest.videos = new List<Video>();
            foreach (var video in videos)
            {
                videoWithLatest.videos.AddRange(video.VideoList);
            }
            return videoWithLatest;
        }
        // GET: Youtube
        public ActionResult Index()
        {
            var databaseInteraction = new MongoDbInteraction(new MongoDbConnection { CollectionName = "googleAuthorization", DatabaseName = "StrawHatEntertainment" },
                                                             new MongoClient("mongodb://localhost"));
            var results = databaseInteraction.FindAll<BsonDocument>().Result;
            if (results.Count() == 0)
            {
                var authEndpoint = "https://accounts.google.com/o/oauth2/auth?";
                NameValueCollection queryString = System.Web.HttpUtility.ParseQueryString(string.Empty);
                queryString["response_type"] = "code";
                queryString["client_id"] = "585224365875-s7phb7mlduaa5e93r2qojjldcgi4o2vj.apps.googleusercontent.com";
                queryString["redirect_uri"] = "http://localhost:55102/youtube/HandleClientCode";
                queryString["scope"] = "https://www.googleapis.com/auth/youtube";
                queryString["access_type"] = "offline";
                queryString["approval_prompt"] = "force";

                var authorizationUrl = authEndpoint + queryString.ToString();
                return Redirect(authorizationUrl);
            }

            var googleAuthentication = results.Select(x => BsonSerializer.Deserialize<TokenInfo>(x)).ToList()[0];

            return View("~/Views/Home/Index.cshtml");
        }