示例#1
0
        public async Task RegisterUser(CreateUserDTO createUserDTO)
        {
            var userName = createUserDTO.UserName;
            var password = createUserDTO.Password;
            var email    = createUserDTO.Email;
            var picture  = createUserDTO.Picture ?? _webClientService.DownloadData("https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Default_profile_picture_%28male%29_on_Facebook.jpg/600px-Default_profile_picture_%28male%29_on_Facebook.jpg");
            var errors   = new List <string>();

            if (userName.Length < 5)
            {
                errors.Add(Strings.UserNameTooShortMessage);
            }
            if (password.Length < 4)
            {
                errors.Add(Strings.PasswordTooShortMessage);
            }
            if (await _missioContext.Users.AnyAsync(x => x.UserName == userName))
            {
                errors.Add(Strings.UserNameAlreadyInUseMessage);
            }
            if (errors.Count > 0)
            {
                throw new UserRegistrationException(errors);
            }
            var newUser = new User(userName, picture, email);

            _missioContext.Add(newUser);
            _missioContext.Add(new UserCredentials(newUser, _passwordService.HashPassword(password)));
            _missioContext.SaveChanges();
        }
示例#2
0
        /// <inheritdoc />
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            SeedUsers();
            SeedCredentials();
            SeedPosts();
            SeedFriends();
            SeedStickyPosts();
            SeedComments();
            SeedNotifications();

            void SeedUsers()
            {
                var grecoImage = _webClientService.DownloadData("https://i.redd.it/af8i0tmu4i911.jpg");
                var jorgeImage = _webClientService.DownloadData("https://i.redd.it/af8i0tmu4i911.jpg");
                var greco      = new { UserName = "******", Picture = grecoImage, Email = "*****@*****.**", Id = -1 };
                var jorge      = new { UserName = "******", Picture = jorgeImage, Email = "*****@*****.**", Id = -2 };

                modelBuilder.Entity <User>().HasData(greco, jorge);
            }

            void SeedCredentials()
            {
                var grecoCredentials = new { Id = -1, UserId = -1, HashedPassword = _passwordService.HashPassword("ElPass") };
                var jorgeCredentials = new { Id = -2, UserId = -2, HashedPassword = _passwordService.HashPassword("Yolo") };

                modelBuilder.Entity <UserCredentials>().HasData(grecoCredentials, jorgeCredentials);
            }

            void SeedFriends()
            {
                var grecoFriends = new { Id = -1, UserId = -1, FriendId = -2 };
                var jorgeFriends = new { Id = -2, UserId = -2, FriendId = -1 };

                modelBuilder.Entity <Friendship>().HasData(grecoFriends, jorgeFriends);
            }

            void SeedPosts()
            {
                modelBuilder.Entity <Post>().HasData(
                    new { AuthorId = -1, PublishedDate = new DateTime(2018, 1, 1), Id = -1, Message = "First message written by Greco", Image = _webClientService.DownloadData("https://images2.alphacoders.com/602/thumb-1920-602223.jpg") },
                    new { AuthorId = -1, PublishedDate = new DateTime(2018, 1, 2), Id = -2, Message = "Second message written by Greco", Image = _webClientService.DownloadData("https://images-eds-ssl.xboxlive.com/image?url=8Oaj9Ryq1G1_p3lLnXlsaZgGzAie6Mnu24_PawYuDYIoH77pJ.X5Z.MqQPibUVTc88m2VEnuTLB8d0DOf71kf9zLge.JQeY40W.K7bxV5oSXFxdH1MZYfvu4.uaO8xIU1V9nbqmD60ax7aG8dgfPHi6nMT.dV6kUzMwNKv4SE0tH_gKhP.hCZYTNLqn36oQndGI_jLJwNDu2j1ZkHhtoFxf2VZU2eXHud5ZP7VXxn4M-&h=1080&w=1920&format=jpg") },
                    new { AuthorId = -2, PublishedDate = new DateTime(2018, 2, 3), Id = -3, Message = "First message written by Jorge" });
            }

            void SeedComments()
            {
                modelBuilder.Entity <Comment>().HasData(new { PostId = -1, Id = -1, Text = "Un comment", AuthorId = -1 });
            }

            void SeedStickyPosts()
            {
                modelBuilder.Entity <StickyPost>().HasData(new { Id = -1, Message = "A sticky post message", Title = "A sticky post title" });
            }

            void SeedNotifications()
            {
                modelBuilder.Entity <PostLikedNotification>().HasData(new { Id = -1, UserToBeNotifiedId = -1, UserWhichLikedThePostId = -2, PostThatWasLikedId = -1, TimeLiked = new DateTime(2018, 1, 1) });
            }
        }