示例#1
0
        public ActionResult Create(Micropost micropost)
        {
            if (!Request.IsAuthenticated)
            {
                return(RedirectToAction("Create", "Sessions"));
            }

            int currentUserId = int.Parse(User.Identity.Name);
            var currentUser   = db.Users.Find(currentUserId);

            micropost.User        = currentUser;
            micropost.DateCreated = DateTime.Now;

            try
            {
                db.Microposts.Add(micropost);
                db.SaveChanges();

                TempData["success"] = "A new micropost was successfully created.";
                return(RedirectToAction("Dashboard", "Home"));
            }
            catch
            {
                TempData["error"] = "Can not create a micropost.";
                return(RedirectToAction("Dashboard", "Home"));
            }
        }
示例#2
0
        public int Create(string content, ApplicationUser user)
        {
            var newM = new Micropost {
                Content = content, User = user, CreatedAt = DateTime.Now
            };

            context.Microposts.Add(newM);
            context.SaveChanges();
            return(newM.Id);
        }
示例#3
0
        public IActionResult Create([FromBody] MicropostRequest request)
        {
            var email = User.Claims.First(c => c.Type == ClaimTypes.Email).Value;
            var user  = Db.Users.Single(u => u.Email == email);

            Db.Entry(user).Collection(u => u.Microposts).Load();

            var post = new Micropost {
                Content = request.Content
            };

            TryValidateModel(post);
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            user.Microposts.Add(post);
            Db.SaveChanges();

            return(Ok(post));
        }
示例#4
0
        protected override void Seed(ApplicationDbContext context)
        {
            var userStore   = new CustomUserStore(context);
            var userManager = new ApplicationUserManager(userStore);

            userManager.UserValidator = new UserValidator <ApplicationUser, int>(userManager)
            {
                AllowOnlyAlphanumericUserNames = false
            };

            if (!context.Roles.Any(role => role.Name.Equals("Admin")))
            {
                var roleStore   = new CustomRoleStore(context);
                var roleManager = new  RoleManager <CustomRole, int>(roleStore);
                var adminRole   = new CustomRole("Admin");

                roleManager.Create(adminRole);
            }

            if (!context.Users.Any(user => user.Email.Equals("*****@*****.**")))
            {
                var first = new ApplicationUser()
                {
                    FullName       = "Example User",
                    Email          = "*****@*****.**",
                    UserName       = "******",
                    EmailConfirmed = true
                };

                userManager.Create(first, "foobar");
                userManager.AddToRole(first.Id, "Admin");
            }

            for (int i = 0; i < 99; i++)
            {
                var          name     = Name.FullName();
                var          email    = $"example-{i + 1}@railstutorial.org";
                const string password = "******";

                var newUser = new ApplicationUser()
                {
                    FullName       = name,
                    Email          = email,
                    UserName       = email,
                    EmailConfirmed = true
                };

                if (!context.Users.Any(user => user.Email.Equals(email)))
                {
                    var result = userManager.Create(newUser, password);
                    if (!result.Succeeded)
                    {
                        throw new Exception(string.Join("\n", result.Errors));
                    }
                }
            }
            var allUsers = context.Users.OrderBy(user => user.Id).ToList();
            var users    = allUsers.Take(6).ToList();

            for (int i = 0; i < 50; i++)
            {
                var content = Lorem.Sentence(5);
                foreach (var user in users)
                {
                    Micropost m = new Micropost {
                        Content = content, User = user, CreatedAt = DateTime.Now
                    };
                    user.Microposts.Add(m);
                }
            }

            var mainUser  = allUsers.First();
            var following = allUsers.Where((user, index) => index > 0 && index < 50);
            var followers = allUsers.Where((user, index) => index > 1 && index < 40);

            foreach (var user in following)
            {
                mainUser.Follow(user);
            }
            foreach (var user in followers)
            {
                user.Follow(mainUser);
            }
        }