Beispiel #1
0
        static void Main(string[] args)
        {
            using (var context = new BlogContext())
            {
                var videoPost = new VideoPost
                {
                    Blog = new Blog
                    {
                        Name   = "Blog1",
                        Author = new Author
                        {
                            Name = "Jan Kowalski"
                        }
                    },
                    Title    = "test",
                    VideoUrl = "http://fake/adres"
                };

                context.Add(videoPost);

                var podcastPost = new PodcastPost
                {
                    Blog = new Blog
                    {
                        Name   = "Blog2",
                        Author = new Author
                        {
                            Name = "Jan Kowalski"
                        }
                    },
                    Title      = "test",
                    PodcastUrl = "http://fake/adres"
                };

                context.Add(podcastPost);

                var textPost = new TextPost
                {
                    Blog = new Blog
                    {
                        Name   = "Blog3",
                        Author = new Author
                        {
                            Name = "Jan Kowalski"
                        }
                    },
                    Title       = "test",
                    PostContent = "test"
                };

                context.Add(textPost);

                context.SaveChanges();
            }
        }
        public async Task <IActionResult> AddNewVideo([FromBody] NewVideoVM vm)
        {
            if (!ModelState.IsValid)
            {
                string errorMsg = null;
                foreach (var m in ModelState.Values)
                {
                    foreach (var msg in m.Errors)
                    {
                        errorMsg = msg.ErrorMessage;
                    }
                }
                return(BadRequest(errorMsg));
            }

            var user = await _userManager.FindByIdAsync(User.Identity.Name);

            if (user == null)
            {
                return(NotFound());
            }

            if (await _userManager.IsInRoleAsync(user, "Admin"))
            {
                VideoPost newVideoPost = new VideoPost
                {
                    CareerId           = vm.CareerId ?? null,
                    CategoryId         = vm.CategoryId,
                    CountryId          = vm.CountryId,
                    UploaderId         = vm.UploaderId,
                    SalaryInfoId       = vm.SalaryInfoId,
                    Likes              = vm.Likes,
                    Title              = vm.Title,
                    UploadedDate       = DateTime.UtcNow,
                    YouTubeVideoId     = vm.YouTubeVideoId,
                    SharerId           = vm.SharerId,
                    IsGoogleDriveVideo = vm.IsGoogleDriveVideo ? (byte)1 : (byte)0
                };

                await _vpRepository.AddAsync(newVideoPost);

                await _vpRepository.CommitAsync();

                var videoCommentVM = Mapper.Map <VideoPost, VideoPostVM>(newVideoPost);

                return(CreatedAtRoute("GetVideoPost", new
                {
                    controller = "Admin",
                    id = videoCommentVM.VideoPostId
                }, videoCommentVM));
            }

            return(StatusCode(401));
        }
        public async Task <PostDto> CreateAsync(VideoPostCreateDto postCreateDto)
        {
            var videoPost = new VideoPost()
            {
                Url    = postCreateDto.Content,
                UserId = postCreateDto.User.Id,
            };

            await _context.Posts.AddAsync(videoPost);

            await _context.SaveChangesAsync();

            return(videoPost.ToDto());
        }
Beispiel #4
0
        private VideoPost ParseVideoPost(JObject jObject, HashSet <string> checkedProperties)
        {
            VideoPost newPost = new VideoPost();
            JToken    current;

            if (CheckProperty(jObject, "caption", checkedProperties, out current))
            {
                newPost.Caption = (string)current;
            }
            if (CheckProperty(jObject, "permalink_url", checkedProperties, out current))
            {
                newPost.PermalinkUrl = (string)current;
            }
            if (CheckProperty(jObject, "thumbnail_url", checkedProperties, out current))
            {
                newPost.ThumbnailUrl = (string)current;
            }
            if (CheckProperty(jObject, "thumbnail_width", checkedProperties, out current))
            {
                newPost.ThumbnailWidth = (decimal)current;
            }
            if (CheckProperty(jObject, "thumbnail_height", checkedProperties, out current))
            {
                newPost.ThumbnailHeight = (decimal)current;
            }
            if (CheckProperty(jObject, "html5_capable", checkedProperties, out current))
            {
                newPost.Html5Capable = (bool)current;
            }
            if (CheckProperty(jObject, "video_url", checkedProperties, out current))
            {
                newPost.VideoUrl = (string)current;
            }
            if (CheckProperty(jObject, "duration", checkedProperties, out current))
            {
                newPost.Duration = (decimal)current;
            }
            if (CheckProperty(jObject, "player", checkedProperties, out current))
            {
                newPost.Player = new List <Player>();
                var children = current.Children();
                foreach (JObject child in children)
                {
                    newPost.Player.Add(ParsePlayer(child));
                }
            }
            return(newPost);
        }
Beispiel #5
0
        public static PostDto ToDto(this VideoPost vidPost)
        {
            var returnDto = new PostDto()
            {
                Id               = vidPost.Id,
                CreatedBy        = vidPost.User.ToDto(),
                UserId           = vidPost.Id,
                CreatedTime      = vidPost.CreatedTime,
                Likes            = vidPost.Likes,
                Content          = vidPost.Url,
                Type             = PostType.ImagePost,
                NumberOfComments = vidPost.Comments.Count,
            };

            return(returnDto);
        }
		public object Deserialize(JsonValue json, JsonMapper mapper)
		{
			VideoPost post = null;
			if ( json != null && !json.IsNull )
			{
				post = new VideoPost();
				post.ID          = json.ContainsName("id"          ) ? json.GetValue<string>("id"       ) : String.Empty;
				post.Source      = json.ContainsName("source"      ) ? json.GetValue<string>("source"   ) : String.Empty;
				post.VideoId     = json.ContainsName("object_id"   ) ? json.GetValue<string>("object_id") : String.Empty;
				post.CreatedTime = json.ContainsName("created_time") ? JsonUtils.ToDateTime(json.GetValue<string>("created_time"), "yyyy-MM-ddTHH:mm:ss") : DateTime.MinValue;
				post.UpdatedTime = json.ContainsName("updated_time") ? JsonUtils.ToDateTime(json.GetValue<string>("updated_time"), "yyyy-MM-ddTHH:mm:ss") : DateTime.MinValue;
				
				post.From        = mapper.Deserialize<Reference>(json.GetValue("from"));
				post.Tags        = mapper.Deserialize<List<Tag>>(json.GetValue("tags"));
			}
			return post;
		}
Beispiel #7
0
        public static PostThreadDto ToPostThreadDto(this VideoPost videoPost)
        {
            var threadDto = new PostThreadDto()
            {
                Id               = videoPost.Id,
                CreatedBy        = videoPost.User?.ToDto(),
                UserId           = videoPost.Id,
                CreatedTime      = videoPost.CreatedTime,
                Likes            = videoPost.Likes,
                Comments         = videoPost.Comments.ToDto().ToList(),
                Content          = videoPost.Url,
                NumberOfComments = videoPost.Comments.Count,
                Type             = PostType.QuotePost,
            };

            return(threadDto);
        }
Beispiel #8
0
        public object Deserialize(JsonValue json, JsonMapper mapper)
        {
            VideoPost post = null;

            if (json != null && !json.IsNull)
            {
                post             = new VideoPost();
                post.ID          = json.ContainsName("id") ? json.GetValue <string>("id") : String.Empty;
                post.Source      = json.ContainsName("source") ? json.GetValue <string>("source") : String.Empty;
                post.VideoId     = json.ContainsName("object_id") ? json.GetValue <string>("object_id") : String.Empty;
                post.CreatedTime = json.ContainsName("created_time") ? JsonUtils.ToDateTime(json.GetValue <string>("created_time"), "yyyy-MM-ddTHH:mm:ss") : DateTime.MinValue;
                post.UpdatedTime = json.ContainsName("updated_time") ? JsonUtils.ToDateTime(json.GetValue <string>("updated_time"), "yyyy-MM-ddTHH:mm:ss") : DateTime.MinValue;

                post.From = mapper.Deserialize <Reference>(json.GetValue("from"));
                post.Tags = mapper.Deserialize <List <Tag> >(json.GetValue("tags"));
            }
            return(post);
        }
Beispiel #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="post"></param>
        /// <param name="jPost"></param>
        public static void GenerateVideoPost(ref TumblrPost post, dynamic jPost)
        {
            if (post == null)
            {
                throw new ArgumentNullException(nameof(post));
            }
            if (jPost == null)
            {
                throw new ArgumentNullException(nameof(jPost));
            }

            post = new VideoPost
            {
                Caption         = !string.IsNullOrEmpty((string)jPost.caption) ? jPost.caption : null,
                VideoType       = !string.IsNullOrEmpty((string)jPost.video_type) ? jPost.video_type : null,
                VideoUrl        = !string.IsNullOrEmpty((string)jPost.permalink_url) ? jPost.permalink_url : null,
                ThumbnailUrl    = !string.IsNullOrEmpty((string)jPost.thumbnail_url) ? jPost.thumbnail_url : null,
                ThumbnailWidth  = !string.IsNullOrEmpty((string)jPost.thumbnail_width) ? jPost.thumbnail_width : null,
                ThumbnailHeight = !string.IsNullOrEmpty((string)jPost.thumbnail_height) ? jPost.thumbnail_height : null,
                IsHtml5Capable  = !string.IsNullOrEmpty((string)jPost.html5_capable) ? jPost.html5_capable : null
            };

            if (jPost.player != null)
            {
                post.VideoPlayers = new HashSet <VideoPostEmbedPlayer>();
                foreach (dynamic jPlayer in jPost.player)
                {
                    VideoPostEmbedPlayer player = new VideoPostEmbedPlayer
                    {
                        EmbedCode = !string.IsNullOrEmpty((string)jPlayer.embed_code) ? jPlayer.embed_code : null,
                        Width     = !string.IsNullOrEmpty((string)jPlayer.width) ? jPlayer.width : null
                    };
                    post.VideoPlayers.Add(player);
                }
            }
            IncludeCommonPostFields(ref post, jPost);
        }
Beispiel #10
0
        public static void EnsurePopulated(IApplicationBuilder app)
        {
            var context = app.ApplicationServices.GetRequiredService <WhiteBoardContext>();

            context.Database.Migrate();

            if (DbIsEmpty(context))
            {
                var user1 = new User()
                {
                    FirstName = "Samwise",
                    LastName  = "Gamgee",
                    Alias     = "Sam",
                    Email     = "*****@*****.**",
                    Password  = "******",
                };

                var user2 = new User()
                {
                    FirstName = "Bertha",
                    LastName  = "Baggins",
                    Alias     = "Bertha",
                    Email     = "*****@*****.**",
                    Password  = "******"
                };

                var quotePost1 = new QuotePost()
                {
                    UserId = 1,
                    //CreatedBy = user1,
                    Text  = "We have a business strategy around here -  it's called getting shit done",
                    Likes = 5,
                };

                var quotePost2 = new QuotePost()
                {
                    UserId = 2,
                    //CreatedBy = user2,
                    Text  = "If you can think it, you can build it",
                    Likes = 2
                };

                user1.QuotePosts.Add(quotePost1);
                user2.QuotePosts.Add(quotePost2);


                var imagePost = new ImagePost()
                {
                    UserId = 1,
                    Url    = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Everest_North_Face_toward_Base_Camp_Tibet_Luca_Galuzzi_2006.jpg/560px-Everest_North_Face_toward_Base_Camp_Tibet_Luca_Galuzzi_2006.jpg"
                };

                var videoPost = new VideoPost()
                {
                    UserId = 2,
                    Url    = "https://youtu.be/fFRVFHP4GLE"
                };

                user1.ImagePosts.Add(imagePost);

                user2.VideoPosts.Add(videoPost);

                var comment1 = new Comment()
                {
                    UserId = 1,
                    User   = user1,
                    PostId = 1,
                    Body   = "You are so right!"
                };

                imagePost.Comments.Add(comment1);

                var comment2 = new Comment()
                {
                    UserId = 2,
                    User   = user2,
                    PostId = 2,
                    Body   = "Lovely Video! So motivating :) "
                };

                videoPost.Comments.Add(comment2);

                Console.WriteLine("DB is being updated");

                var comment3 = new Comment()
                {
                    UserId = 2,
                    User   = user2,
                    PostId = 2,
                    Body   = "What a strategy!"
                };

                quotePost1.Comments.Add(comment3);

                context.Users.AddRange(
                    user1, user2
                    );
                context.Posts.AddRange(videoPost, imagePost, quotePost1, quotePost2);

                context.SaveChanges();
            }
        }
        static void Main(string[] args)
        {
            // connects to a local database
            Services.Services._client   = new MongoClient("mongodb://127.0.0.1:27017/");
            Services.Services._database = Services.Services._client.GetDatabase("SocialNetworkDb");

            services.CreateCollections();    //comment this out after first run of the programme
            services.retrieveCollections();

            SetUp  setUp = new SetUp(services);
            string input = "0";

            // insert dummydata
            Console.WriteLine("Want to insert dummydata? press D (Press any button if don't wish to add dummy data)");
            Console.WriteLine("NOTE: if this is the first time running the program, its an good idea to insert dummyData");
            input = Console.ReadLine();
            switch (input)
            {
            case "D":
                setUp.seedData();
                Console.WriteLine("DummyData inserted!");
                input = "0";
                break;

            default:
                Console.WriteLine("DummyData not inserted!");
                input = "0";
                break;
            }
            //SetUp.SeedingData();           //comment this out after first run of the programme

            User Currentuser = new User();
            Wall wall        = new Wall(services);
            Feed feed        = new Feed(services);

            Console.WriteLine("WELCOME TO THE SOCIAL NETWORK");
            Currentuser = setUp.UserLogin();



            //string input = "0";

            while (true)
            {
                switch (input)
                {
                case "0":
                    InitMessage();
                    input = Console.ReadLine();
                    break;

                case "1":
                    CreatePostPrintout();
                    string postType = Console.ReadLine();
                    string postContent;
                    if (postType == "T")
                    {
                        Console.WriteLine("Please enter content for your post");
                        postContent = Console.ReadLine();
                        TextPost textPost = new TextPost()
                        {
                            CreationTime = DateTime.Now,
                            TextContent  = postContent,
                            Author       = Currentuser.UserName
                        };
                        setUp.PostOptions(Currentuser, textPost);
                    }
                    else if (postType == "V")
                    {
                        Console.WriteLine("Please enter Video title: ");
                        var       videoContent = Console.ReadLine();
                        string    videoInput   = "";
                        VideoPost videoPost    = new VideoPost()
                        {
                            CreationTime = DateTime.Now,
                            VideoContent = videoContent,
                            Options      = new Dictionary <string, int>(),
                            Author       = Currentuser.UserName
                        };

                        do
                        {
                            Console.WriteLine("--------------------------------------");
                            Console.WriteLine("|| 0  || Where to post               ||");
                            Console.WriteLine("|| 1  || Create Video                ||");
                            videoInput = Console.ReadLine();
                            if (videoInput == "1")
                            {
                                Console.WriteLine("------------------------------------------------------------------------------------------");
                                Console.WriteLine("||                       PLEASE ENTER VIDEO CONTENT                                       ||");
                                Console.WriteLine("------------------------------------------------------------------------------------------");
                                var content = Console.ReadLine();
                                videoPost.Options.Add(content, 0);
                            }
                        } while (videoInput != "0");
                        setUp.PostOptions(Currentuser, videoPost);
                        Console.WriteLine("-------------------------------------------------------------------------------------------");
                        Console.WriteLine("||                       THE VIDEO HAS BEEN POSTED SUCCESSFULLY!                         ||");
                        Console.WriteLine("-------------------------------------------------------------------------------------------");
                    }
                    input = "0";
                    break;

                case "2":
                    Console.WriteLine("Please enter a user to visit their wall:");
                    var userInput = Console.ReadLine();
                    var findUser  = services.GetUser().FirstOrDefault(u => userInput == u.UserName);
                    if (findUser == null)
                    {
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        Console.WriteLine("||                       WARNING: USER DOES NOT EXIST - PRESS ENTER TO CONTINUE         ||");
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        Console.ReadLine();
                        input = "0";
                        break;
                    }
                    var wallOfUser       = wall.GetWall(findUser.UserId, Currentuser.UserId);
                    int PostnumberOnWall = 1;
                    foreach (var post in wallOfUser)
                    {
                        Console.WriteLine($"------------------ PostNumber: {PostnumberOnWall++} ------------------------");
                        post.print();
                    }

                    Console.WriteLine("|| 0  || Enter to add a comment      ||");
                    if (wallOfUser.OfType <VideoPost>().Any())
                    {
                        Console.WriteLine("|| 1  || Enter to vote on meme   ||");
                    }
                    Console.WriteLine("|| Enter  || To continue             ||");
                    var commentWallChoice = Console.ReadLine();
                    if (commentWallChoice == "0")
                    {
                        var wallCommentNumber = 0;
                        do
                        {
                            Console.WriteLine("Please enter the number of the post you wish to comment on:");
                            wallCommentNumber = int.Parse(Console.ReadLine());
                            if (wallCommentNumber <= 5 && wallCommentNumber >= 1)
                            {
                                break;
                            }
                            warningMessageNumber_NotValid();
                        } while (true);

                        Console.WriteLine(wallOfUser[wallCommentNumber - 1].Author);
                        setUp.NewComment(wallOfUser[wallCommentNumber - 1]);
                    }
                    else if (commentWallChoice == "1")
                    {
                        var wallMemeNumber = 0;
                        do
                        {
                            Console.WriteLine("Please enter the number of the post you wish to vote on:");
                            wallMemeNumber = int.Parse(Console.ReadLine());
                            if (wallMemeNumber <= 5 && wallMemeNumber >= 1)
                            {
                                break;
                            }
                            if ((wallOfUser[wallMemeNumber - 1] is VideoPost))
                            {
                                break;
                            }
                            warningMessageNumber_NotValid();
                        } while (true);

                        Console.WriteLine("Choose the option to vote for: (Name of the option. Case sensitive)");
                        var WallMemeChoice = Console.ReadLine();
                        var post           = wallOfUser[wallMemeNumber - 1] as VideoPost;
                        post.Options[WallMemeChoice]++;
                        setUp.UpdatePosts(post);
                    }
                    input = "0";
                    break;

                case "3":
                    Console.WriteLine("------------------------------------------------------------------------------------------");
                    Console.WriteLine("||                       THIS IS YOUR FEED                                              ||");
                    Console.WriteLine("------------------------------------------------------------------------------------------");
                    var yourFeed         = feed.ShowFeed(Currentuser.UserId);
                    int postNumberInFeed = 1;
                    foreach (var post in yourFeed)
                    {
                        Console.WriteLine($"------------------ PostNumber: {postNumberInFeed++} ------------------------");
                        post.print();
                    }

                    Console.WriteLine("|| 0  || Enter to add a comment for one of the posts      ||");
                    if (yourFeed.OfType <VideoPost>().Any())
                    {
                        Console.WriteLine("|| 1  || Enter to vote on meme   ||");
                    }
                    Console.WriteLine("|| Enter  || To continue             ||");
                    var choosingComment = Console.ReadLine();
                    if (choosingComment == "0")
                    {
                        var numberCommentsOfFeed = 0;
                        do
                        {
                            Console.WriteLine("Please enter the number of post you wish to comment on: ");
                            numberCommentsOfFeed = int.Parse(Console.ReadLine());
                            if (numberCommentsOfFeed <= 5 && numberCommentsOfFeed >= 1)
                            {
                                break;
                            }

                            warningMessageNumber_NotValid();
                        } while (true);

                        setUp.NewComment(yourFeed[numberCommentsOfFeed - 1]);
                    }
                    else if (choosingComment == "1")
                    {
                        var feedMemeNumber = 0;
                        do
                        {
                            Console.WriteLine("Please enter the number of the post you wish to vote on: ");
                            feedMemeNumber = int.Parse(Console.ReadLine());
                            if (feedMemeNumber <= 5 && feedMemeNumber >= 1)
                            {
                                break;
                            }
                            if ((yourFeed[feedMemeNumber - 1] is VideoPost))
                            {
                                break;
                            }
                            warningMessageNumber_NotValid();
                        } while (true);

                        Console.WriteLine("Choose the option to vote for: (Name of the option. Case sensitive)");
                        var feedMemeChoice = Console.ReadLine();
                        var post           = yourFeed[feedMemeNumber - 1] as VideoPost;
                        post.Options[feedMemeChoice]++;
                        setUp.UpdatePosts(post);
                    }
                    input = "0";
                    break;

                case "4":
                    Console.WriteLine("Please enter a username you wish to add to your blocked list:");
                    var BlockedUser     = Console.ReadLine();
                    var findUserToBlock = services.GetUser().FirstOrDefault(u => BlockedUser == u.UserName);
                    if (findUserToBlock == null)
                    {
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        Console.WriteLine("||                           WARNING: USER DOES NOT EXIST!                              ||");
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        input = "0";
                        break;
                    }

                    if (Currentuser.BlockedList.Contains(findUserToBlock.UserId))
                    {
                        Currentuser.BlockedList.Add(findUserToBlock.UserId);
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        Console.WriteLine("||                        A USER HAS BEEN BLOCKED SUCCESSFULLY!                         ||");
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                    }
                    else
                    {
                        Currentuser.BlockedList.Remove(findUserToBlock.UserId);
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        Console.WriteLine("||                        A USER HAS BEEN UNBLOCKED SUCCESSFULLY!                       ||");
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                    }
                    services.UpdateUser(Currentuser.UserId, Currentuser);

                    input = "0";
                    break;

                case "5":
                    Console.WriteLine("Please enter the username you want to follow/unfollow: ");
                    var UserToFollow     = Console.ReadLine();
                    var findUserToFollow = services.GetUser().FirstOrDefault(u => UserToFollow == u.UserName);
                    if (findUserToFollow == null)
                    {
                        Console.WriteLine("\nUser does not exist");
                        input = "0";
                        break;
                    }

                    if (Currentuser.FriendList.Contains(findUserToFollow.UserId)) // hvis user findes i db vil den gå ind i if noget med circle
                    {
                        if (Currentuser.Circles == findUserToFollow.Circles)      // hvis der findes et circlename i currentusers circles, som også findes i findUsertoFollows circles
                        {
                            Currentuser.FriendList.Add(findUserToFollow.UserId);
                            Console.WriteLine("------------------------------------------------------------------------------------------");
                            Console.WriteLine("||                    A USER HAS BEEN ADDED TO YOUR FRIENDLIST SUCCESSFULLY!            ||");
                            Console.WriteLine("------------------------------------------------------------------------------------------");
                            break;
                        }
                        Currentuser.FriendList.Add(findUserToFollow.UserId);
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        Console.WriteLine("||                    A USER HAS BEEN ADDED TO YOUR FRIENDLIST SUCCESSFULLY!            ||");
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                    }
                    else
                    {
                        Currentuser.FriendList.Remove(findUserToFollow.UserId);
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                        Console.WriteLine("||                    A USER HAS BEEN REMOVED FROM YOUR FRIENDLIST SUCCESSFULLY!          ||");
                        Console.WriteLine("------------------------------------------------------------------------------------------");
                    }
                    //Currentuser.FriendList.Add(findUserToFollow.UserId);
                    services.UpdateUser(Currentuser.UserId, Currentuser);

                    input = "0";
                    break;

                case "6":
                    setUp.newUser();
                    break;

                case "7":
                    setUp.AddCircle(Currentuser);
                    input = "0";
                    break;

                case "8":
                    Currentuser = setUp.UserLogin();
                    input       = "0";
                    break;

                case "9":
                    return;

                default:
                    Console.WriteLine("------------------------------------------------------------------------------------------");
                    Console.WriteLine("||                         WARNING: WRONG COMMAND - PLEASE TRY AGAIN                    ||");
                    Console.WriteLine("------------------------------------------------------------------------------------------");
                    input = "0";
                    break;
                }
            }
        }