Example #1
0
        private void SeedUsers(PhotoContestDbContext context)
        {
            var manager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));

            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                var store       = new RoleStore <IdentityRole>(context);
                var roleManager = new RoleManager <IdentityRole>(store);
                var role        = new IdentityRole {
                    Name = "Admin"
                };

                roleManager.Create(role);
            }

            if (!context.Users.Any(u => u.UserName == "*****@*****.**"))
            {
                var user = new ApplicationUser {
                    UserName = "******", Email = "*****@*****.**", FirstName = "Admin", LastName = "Adminov"
                };

                manager.Create(user, "Temp_123");
                manager.AddToRole(user.Id, "Admin");
            }

            using (var reader = new StreamReader(this.PathBuilder("PhotoContest.Data", @"/Resources/Users.txt")))
            {
                string line = reader.ReadLine();
                int    i    = 0;

                while (!string.IsNullOrEmpty(line.Trim()))
                {
                    var userData = Regex.Split(line, @"\s+\|\s+");

                    ApplicationUser user = new ApplicationUser()
                    {
                        UserName   = userData[0] + userData[1],
                        Email      = userData[0] + userData[1] + "@somemail.com",
                        FirstName  = userData[0],
                        LastName   = userData[1],
                        JoinedAt   = DateTime.Now,
                        AboutMe    = userData[2],
                        ProfilePic = userData[3] == "https://www.dropbox.com/s/225jip7nvs2gwt6/images%20%283%29.jpg?raw=1" ? null : userData[3]
                    };

                    manager.Create(user, "Temp_123" + i++);

                    line = reader.ReadLine();
                }

                context.SaveChanges();
            }

            if (!context.Messages.Any())
            {
                this.SeedMessages(context);
            }

            this.allUsers = context.Users.OrderByDescending(u => u.JoinedAt).ToList();
        }
Example #2
0
        private void SeedCategories(PhotoContestDbContext context)
        {
            using (var reader = new StreamReader(this.PathBuilder("PhotoContest.Data", @"/Resources/Categories.txt")))
            {
                string line = reader.ReadLine();

                while (line != null)
                {
                    var categoryNames = Regex.Split(line, @",\s+");
                    for (int i = 0; i < categoryNames.Length; i++)
                    {
                        var category = new Category()
                        {
                            CategoryName = categoryNames[i]
                        };

                        context.Categories.Add(category);
                    }

                    line = reader.ReadLine();
                }

                context.SaveChanges();
            }
        }
Example #3
0
        private void SeedPrizes(PhotoContestDbContext context)
        {
            for (int i = 0; i < 9; i++)
            {
                var    prize = new Prize();
                string cName = null;

                if (i < 3)
                {
                    cName          = contestNames[0];
                    prize.Name     = cName + " Winner " + (i + 1);
                    prize.ForPlace = i + 1;
                    prize.Contest  = context.Contests.FirstOrDefault(c => c.Title == cName);
                }
                else
                {
                    cName          = contestNames[i - 2];
                    prize.ForPlace = 1;
                    prize.Name     = cName + "'s Winner";
                    prize.Contest  = context.Contests.FirstOrDefault(c => c.Title == cName);
                }

                prize.Description = "Lorem ipsum dolor sit amet. " + i;

                context.Prizes.Add(prize);
            }

            context.SaveChanges();
        }
Example #4
0
        private void SeedMessages(PhotoContestDbContext context)
        {
            var userHolder = new Queue <ApplicationUser>(context.Users.ToArray());

            for (int i = 0; i < userHolder.Count; i++)
            {
                var user = userHolder.Dequeue();
                userHolder.Enqueue(user);

                for (int j = 0; j < 4; j++)
                {
                    var recipient = userHolder.Dequeue();
                    userHolder.Enqueue(recipient);

                    var message = new Message()
                    {
                        Title     = "Msg Title " + j,
                        Content   = "Message to " + recipient.FirstName + " from " + user.FirstName,
                        CreatedAt = DateTime.Now,
                        Sender    = user,
                        Recipient = recipient
                    };
                    context.Messages.Add(message);
                }

                context.SaveChanges();
            }
        }
Example #5
0
        protected override void Seed(PhotoContestDbContext context)
        {
            if (!context.Users.Any(u => u.UserName == "Administrator"))
            {
                var userStore   = new UserStore <User>(context);
                var userManager = new UserManager <User>(userStore);

                //admin user
                var adminUser = new User
                {
                    UserName = "******",
                    Email    = "*****@*****.**"
                };

                var userCreateResult = userManager.Create(adminUser, "qwerty");

                //admin role
                var adminRole = new IdentityRole {
                    Name = "Administrator"
                };
                context.Roles.Add(adminRole);

                var identityRole = new IdentityUserRole {
                    RoleId = adminRole.Id, UserId = adminUser.Id
                };
                adminRole.Users.Add(identityRole);
            }

            context.SaveChanges();
        }
Example #6
0
        public async Task <JsonResult> BanUser(ManageUserViewModel model)
        {
            var context = new PhotoContestDbContext();
            var store   = new UserStore <User>(context);
            var manager = new UserManager <User>(store);
            await manager.SetLockoutEnabledAsync(model.Id, true);

            await manager.SetLockoutEndDateAsync(model.Id, DateTime.Now.AddDays(14));

            return(this.Json(
                       string.Format("Successfully locked user {0}", model.UserName),
                       JsonRequestBehavior.AllowGet));
        }
Example #7
0
        private void SeedTags(PhotoContestDbContext context)
        {
            for (int i = 0; i < 9; i++)
            {
                var newTag = new Tag()
                {
                    Name = "Tag " + (i + 1)
                };

                context.Tags.Add(newTag);
            }

            context.SaveChanges();
        }
Example #8
0
        private void SeedNotifications(PhotoContestDbContext context)
        {
            var rnd        = new Random();
            var notifTypes = (Enum.GetValues(typeof(NotificationType))).Cast <NotificationType>().ToArray();

            foreach (var user in allUsers)
            {
                var notif = new Notification()
                {
                    Content = "Notification for " + user.FirstName,
                    SendOn  = DateTime.Now,
                    User    = user,
                    Type    = notifTypes[rnd.Next(0, notifTypes.Length)]
                };

                context.Notifications.Add(notif);
            }

            context.SaveChanges();
        }
Example #9
0
        private void SeedImages(PhotoContestDbContext context)
        {
            string[] foldersInDropBox = { "AnimalMemes", "Bridges", "RightPlaceRightTime", "SnapShotOfLife", "Space", "TheArtOfNature", "WiredIdeas" };

            var task = Task.Run(() => DropboxManager.GetAllSharedLinks());

            task.Wait();

            Dictionary <string, List <Tuple <string, string> > > photoSeedData = task.Result;

            for (var i = 0; i < foldersInDropBox.Length; i++)
            {
                if (!photoSeedData.ContainsKey("/" + foldersInDropBox[i]))
                {
                    continue;
                }

                List <Tuple <string, string> > imgInContest = photoSeedData["/" + foldersInDropBox[i]];
                int counter = 1;

                Queue <ApplicationUser> userHolder = new Queue <ApplicationUser>(allUsers);
                Queue <Tag>             tagHolder  = new Queue <Tag>(context.Tags.ToArray());

                Random rnd = new Random();

                foreach (var img in imgInContest)
                {
                    var user = userHolder.Dequeue();
                    userHolder.Enqueue(user);

                    string contestName = contestNames[i];

                    var newImg = new Image()
                    {
                        Title       = "Img " + (counter++),
                        ImagePath   = img.Item1,
                        Description = img.Item2 + " - Some inspiring description",
                        CreatedOn   = DateTime.Now,
                        User        = user,
                        Contest     = context.Contests.FirstOrDefault(c => c.Title == contestName),
                        Prize       = null
                    };

                    context.Images.Add(newImg);
                    context.SaveChanges();

                    for (int j = 0; j < rnd.Next(1, 15); j++)
                    {
                        user = userHolder.Dequeue();
                        userHolder.Enqueue(user);

                        if (j % 3 == 0)
                        {
                            user.FavoritePictures.Add(newImg);
                        }

                        if (j % 2 == 0)
                        {
                            newImg.Votes.Add(user);
                        }

                        var comment = new Comment()
                        {
                            Picture   = newImg,
                            Author    = user,
                            Content   = "Comment " + j,
                            CreatedAt = DateTime.Now
                        };

                        context.Comments.Add(comment);

                        for (int k = 0; k < rnd.Next(1, 4); k++)
                        {
                            var tag = tagHolder.Dequeue();
                            tagHolder.Enqueue(tag);

                            newImg.Tags.Add(tag);
                        }
                    }

                    context.SaveChanges();
                }
            }
        }
Example #10
0
        private void SeedContests(PhotoContestDbContext context)
        {
            for (int i = 0; i < contestNames.Length; i++)
            {
                var u          = allUsers.Skip(0).Take(1);
                var newContest = new Contest()
                {
                    Title       = contestNames[i],
                    Description = "A very intriguing description #" + i,
                    CreatedOn   = DateTime.Now,
                    LastUpdated = DateTime.Now,
                    Owner       = allUsers.Skip(i).First()
                };

                switch (i)
                {
                case 0:
                {
                    newContest.Category               = context.Categories.FirstOrDefault(c => c.CategoryName == "Funny");
                    newContest.VotingStrategy         = Strategy.Open;
                    newContest.ParticipationStrategy  = Strategy.Open;
                    newContest.RewardStrategy         = RewardStrategy.TopNPrizes;
                    newContest.DeadlineStrategy       = DeadlineStrategy.ByTime;
                    newContest.ParticipationEndTime   = DateTime.Now.AddDays(31);
                    newContest.Participants           = allUsers.GetRange(3, 14);
                    newContest.MaxParticipationsCount = 125;
                    newContest.PossibleWinnersCount   = 3;
                }
                break;

                case 1:
                {
                    newContest.Category              = context.Categories.FirstOrDefault(c => c.CategoryName == "Architecture");
                    newContest.VotingStrategy        = Strategy.Closed;
                    newContest.ParticipationStrategy = Strategy.Closed;
                    newContest.RewardStrategy        = RewardStrategy.SingleWinner;
                    newContest.DeadlineStrategy      = DeadlineStrategy.ByTime;
                    newContest.ParticipationEndTime  = DateTime.Now.AddDays(10);
                    newContest.Participants          = allUsers.GetRange(3, 10);
                    newContest.CommitteeMembers      = allUsers.GetRange(16, 3);
                    newContest.PossibleWinnersCount  = 3;
                }
                break;

                case 2:
                {
                    newContest.Category               = context.Categories.FirstOrDefault(c => c.CategoryName == "Conceptual");
                    newContest.VotingStrategy         = Strategy.Open;
                    newContest.ParticipationStrategy  = Strategy.Open;
                    newContest.RewardStrategy         = RewardStrategy.SingleWinner;
                    newContest.DeadlineStrategy       = DeadlineStrategy.ByNumberOfParticipants;
                    newContest.MaxParticipationsCount = 15;
                    newContest.Participants           = allUsers.GetRange(4, 15);
                    newContest.PossibleWinnersCount   = 1;
                }
                break;

                case 3:
                {
                    newContest.Category               = context.Categories.FirstOrDefault(c => c.CategoryName == "Conceptual");
                    newContest.VotingStrategy         = Strategy.Open;
                    newContest.ParticipationStrategy  = Strategy.Open;
                    newContest.RewardStrategy         = RewardStrategy.SingleWinner;
                    newContest.DeadlineStrategy       = DeadlineStrategy.ByNumberOfParticipants;
                    newContest.MaxParticipationsCount = 25;
                    newContest.PossibleWinnersCount   = 2;
                }
                break;

                case 4:
                {
                    newContest.Category               = context.Categories.FirstOrDefault(c => c.CategoryName == "Abstract");
                    newContest.VotingStrategy         = Strategy.Open;
                    newContest.ParticipationStrategy  = Strategy.Open;
                    newContest.RewardStrategy         = RewardStrategy.SingleWinner;
                    newContest.DeadlineStrategy       = DeadlineStrategy.ByNumberOfParticipants;
                    newContest.MaxParticipationsCount = 25;
                    newContest.Participants           = allUsers.GetRange(0, 4);
                    newContest.PossibleWinnersCount   = 3;
                }
                break;

                case 5:
                {
                    newContest.Category               = context.Categories.FirstOrDefault(c => c.CategoryName == "Nature");
                    newContest.VotingStrategy         = Strategy.Open;
                    newContest.ParticipationStrategy  = Strategy.Open;
                    newContest.RewardStrategy         = RewardStrategy.SingleWinner;
                    newContest.DeadlineStrategy       = DeadlineStrategy.ByNumberOfParticipants;
                    newContest.MaxParticipationsCount = 25;
                    newContest.Participants           = allUsers.GetRange(8, 5);
                    newContest.PossibleWinnersCount   = 3;
                }
                break;

                default:
                {
                    newContest.Category              = context.Categories.FirstOrDefault(c => c.CategoryName == "People");
                    newContest.VotingStrategy        = Strategy.Open;
                    newContest.ParticipationStrategy = Strategy.Open;
                    newContest.RewardStrategy        = RewardStrategy.SingleWinner;
                    newContest.DeadlineStrategy      = DeadlineStrategy.ByTime;
                    newContest.ParticipationEndTime  = DateTime.Now.AddDays(20);
                    newContest.Participants          = allUsers.GetRange(allUsers.Count() - 3, 2);
                    newContest.PossibleWinnersCount  = 1;
                }
                break;
                }
                ;

                context.Contests.Add(newContest);
            }
            ;

            context.SaveChanges();
        }