private void GenerateGroups(int userCount, int userGroupCount)
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();
            var users      = repository.Users.ToList().OrderBy(p => Guid.NewGuid()).Take(userCount);

            var cities = repository.Cities.ToList();

            foreach (var user in users)
            {
                for (int i = 0; i < userGroupCount; i++)
                {
                    var group = new Group()
                    {
                        UserID = user.ID,

                        Name      = Team.GetRandom(),
                        AvatarUrl = Imaginarium.SaveRandomImage("/Content/files/uploads/", 600, 60),
                        Info      = Textarium.GetRandomText(2),
                        IsBanned  = false,
                        IsVip     = rand.Next(100) % 2 == 0
                    };
                    repository.CreateGroup(group);
                }
            }
        }
        private void GenerateEvents(int userCount, int userEventCount)
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();
            var users      = repository.Users.ToList().OrderBy(p => Guid.NewGuid()).Take(userCount);
            var allUsers   = repository.Users.ToList();
            var cities     = repository.Cities.ToList();

            foreach (var user in users)
            {
                var @event = new Event()
                {
                    UserID      = user.ID,
                    EventDate   = DateTime.Now.AddDays(rand.Next(30)),
                    Name        = Team.GetRandom(),
                    ImagePath   = Imaginarium.SaveRandomImage("/Content/files/uploads/"),
                    Place       = Team.GetRandom(),
                    Description = Textarium.GetRandomText(1).Teaser(140),
                    CityID      = cities.OrderBy(p => Guid.NewGuid()).First().ID,
                    Coordinate  = (rand.NextDouble() * 80).ToString() + "|" + (rand.NextDouble() * 80).ToString()
                };
                repository.CreateEvent(@event);
                var userEventCout = rand.Next(userEventCount) + 3;
                for (int i = 0; i < userEventCout; i++)
                {
                    var userE     = allUsers.OrderBy(p => Guid.NewGuid()).FirstOrDefault();
                    var userEvent = new UserEvent()
                    {
                        EventID = @event.ID,
                        UserID  = userE.ID
                    };
                    repository.CreateUserEvent(userEvent);
                }
            }
        }
        public void GenerateAlbums(int count = 10)
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();

            var users = repository.Users.OrderByDescending(p => p.ID).Take(count);

            foreach (var user in users)
            {
                var countAlbums = rand.Next(2) + 1;
                for (int i = 0; i < countAlbums; i++)
                {
                    var album = new Album()
                    {
                        UserID = user.ID,
                        Name   = Name.GetRandom(),
                        Price  = rand.Next(10) % 2 == 0 ? (int?)(rand.Next(20) * 100) : null
                    };

                    repository.CreateAlbum(album);
                    var photosCount = rand.Next(3) + 4;

                    for (int j = 0; j < photosCount; j++)
                    {
                        var photo = new Photo()
                        {
                            AlbumID  = album.ID,
                            FilePath = Imaginarium.SaveRandomImage("/Content/files/uploads/", 800, 40),
                        };
                        repository.CreatePhoto(photo);
                    }
                }
            }
            Assert.AreEqual(0, 0);
        }
        public void GenerateUsers(int count = 10)
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();

            var cities = repository.Cities.ToList();

            for (int i = 0; i < count; i++)
            {
                var city      = cities.OrderBy(p => Guid.NewGuid()).FirstOrDefault();
                var firstName = Name.GetRandom();
                var lastName  = Surname.GetRandom();

                var user = new User()
                {
                    CityID      = city.ID,
                    FirstName   = string.Format("{0} {1}", firstName, lastName),
                    Password    = "******",
                    Description = Textarium.GetRandomText(1).Teaser(250),
                    Birthday    = GetRandomBirthDay(18, 75),
                    AvatarPath  = Imaginarium.SaveRandomImage("/Content/files/avatars/"),
                    Sex         = rand.Next(2) == 1,
                    Height      = rand.Next(30) + 160,
                    Weight      = rand.Next(40) + 50,
                    Rating      = rand.Next(1000)
                };
                user.Email = Email.GetRandom(firstName, lastName);
                user.Login = user.Email;
                repository.CreateUser(user);
                Console.WriteLine("Создан человечек : " + user.FirstName);
                var status     = Textarium.GetRandomText(1).Teaser(120, "...");
                var userStatus = new UserStatus()
                {
                    UserID = user.ID,
                    Text   = status,
                };
                repository.CreateUserStatus(userStatus);
                Console.WriteLine("Человечек " + user.FirstName + " сделал статус: " + userStatus.Text);

                var max         = rand.Next(3) + 3;
                var preferences = repository.Preferences.ToList();
                for (int j = 0; j < max; j++)
                {
                    var preference     = preferences.OrderBy(p => Guid.NewGuid()).First();
                    var userPreference = new UserPreference()
                    {
                        UserID       = user.ID,
                        PreferenceID = preference.ID
                    };
                    repository.CreateUserPreference(userPreference);
                    Console.WriteLine("Человечек " + user.FirstName + " любит : " + preference.Name);
                }
            }
            Assert.AreEqual(0, 0);
        }
        public void GenerateGifts(int count = 10)
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();

            for (int i = 0; i < count; i++)
            {
                var gift = new Gift()
                {
                    Image    = Imaginarium.SaveRandomImage("/Content/files/gifts/"),
                    Type     = rand.Next(100) % 3 + 1,
                    Price    = rand.Next(10) * 100,
                    IsActive = true,
                };
                repository.CreateGift(gift);
                Console.WriteLine("Создан подарок за " + gift.Price.ToString() + " рублей");
            }
        }
        public void GenerateBlogPosts(int count)
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();
            var users      = repository.Users.ToList();

            foreach (var user in users)
            {
                var countNew = count - rand.Next(20) + 10;
                for (int i = 0; i < countNew; i++)
                {
                    var blogPost = new BlogPost()
                    {
                        UserID = user.ID,
                        Text   = Textarium.GetRandomHtmlText(1 + rand.Next(3)),
                        Attach = rand.Next(12) % 4 == 0 ? Imaginarium.SaveRandomImage("/Content/files/uploads/") : null,
                        Header = Team.GetRandom() + " " + Team.GetRandom(),
                    };

                    repository.CreateBlogPost(blogPost);

                    Console.WriteLine(string.Format("{0} написал в блоге {1}", user.FirstName, blogPost.Header));
                }
            }
        }
        public void GenerateGroupBlogPosts(int countGroup, int countPost, int countComment)
        {
            var repository = DependencyResolver.Current.GetService <IRepository>();
            var groups     = repository.Groups.ToList().OrderBy(p => Guid.NewGuid()).Take(countGroup);
            var users      = repository.Users.ToList();

            foreach (var group in groups)
            {
                var countNew = countPost + rand.Next(4) - 2;
                for (int i = 0; i < countNew; i++)
                {
                    var randomGroupUser = group.SubUsers.ToList().OrderBy(p => Guid.NewGuid()).First();
                    var groupBlogPost   = new GroupBlogPost()
                    {
                        GroupID = group.ID,
                        UserID  = randomGroupUser.ID,
                        Text    = Textarium.GetRandomHtmlText(1 + rand.Next(3)),
                        Attach  = rand.Next(12) % 4 == 0 ? Imaginarium.SaveRandomImage("/Content/files/uploads/") : null,
                        Header  = Team.GetRandom() + " " + Team.GetRandom(),
                    };
                    repository.CreateGroupBlogPost(groupBlogPost);
                    Console.WriteLine(string.Format("{0} написал в блоге группы {1}", randomGroupUser.FirstName, groupBlogPost.Header));

                    var newestCount = countComment + rand.Next(3) - 2;
                    for (int j = 0; j < newestCount; j++)
                    {
                        var user    = users.OrderBy(p => Guid.NewGuid()).FirstOrDefault();
                        var comment = new Comment()
                        {
                            UserID = user.ID,
                            Text   = Textarium.GetRandomText(1 + rand.Next(2)),
                        };
                        repository.CreateComment(comment);
                        var commentGroupBlogPost = new CommentGroupBlogPost()
                        {
                            CommentID       = comment.ID,
                            GroupBlogPostID = groupBlogPost.ID
                        };
                        repository.CreateCommentGroupBlogPost(commentGroupBlogPost);
                        if (commentGroupBlogPost.GroupBlogPost.UserID != user.ID)
                        {
                            var feed = new Feed()
                            {
                                ActionType      = (int)Feed.ActionTypeEnum.AddEventComment,
                                GroupBlogPostID = commentGroupBlogPost.GroupBlogPost.UserID,
                                CommentID       = comment.ID,
                                UserID          = commentGroupBlogPost.GroupBlogPost.UserID,
                                ActorID         = user.ID,
                                IsNew           = true,
                            };
                            repository.CreateFeed(feed);
                        }
                        Console.WriteLine(string.Format("{0} написал комментарий в блоге {1}", user.FirstName, comment.Text.Teaser(50)));
                        if (rand.Next(100) % 2 == 0)
                        {
                            var user2        = users.OrderBy(p => Guid.NewGuid()).FirstOrDefault();
                            var replyComment = new Comment()
                            {
                                ParentID = comment.ID,
                                UserID   = user2.ID,
                                Text     = Textarium.GetRandomText(1 + rand.Next(2)),
                            };
                            repository.CreateComment(replyComment);

                            var replyCommentGroupBlog = new CommentGroupBlogPost()
                            {
                                CommentID       = replyComment.ID,
                                GroupBlogPostID = groupBlogPost.ID
                            };
                            repository.CreateCommentGroupBlogPost(replyCommentGroupBlog);
                            if (replyCommentGroupBlog.GroupBlogPost.UserID != user.ID)
                            {
                                var feed = new Feed()
                                {
                                    ActionType      = (int)Feed.ActionTypeEnum.AddEventComment,
                                    GroupBlogPostID = replyCommentGroupBlog.GroupBlogPost.UserID,
                                    CommentID       = comment.ID,
                                    UserID          = replyCommentGroupBlog.GroupBlogPost.UserID,
                                    ActorID         = user.ID,
                                    IsNew           = true,
                                };
                                repository.CreateFeed(feed);
                            }
                            Console.WriteLine(string.Format("{0} ответил комментарием в блоге {1}", user2.FirstName, replyComment.Text.Teaser(50)));
                        }
                    }
                }
            }
        }