Exemple #1
0
        public void AddEventRssViewed(long currentUserId, long rssToReadId)
        {
            var rssEntryId     = this.database.RssEntriesToRead.Single(r => r.Id == rssToReadId).RssEntryId;
            var eventRssViewed = new EventRssUserInteraction
            {
                RssEntryId      = rssEntryId,
                UserId          = currentUserId,
                InteractionType = InteractionType.Viewed
            };

            this.database.EventsRssUserInteraction.Add(eventRssViewed);
            this.database.SaveChanges();
        }
Exemple #2
0
        public void MarkClicked(long id, long currentUserId)
        {
            var rssEntryToRead = this.database.RssEntriesToRead.Single(x => x.Id == id);

            var eventRssClicked = new EventRssUserInteraction()
            {
                UserId          = currentUserId,
                RssEntryId      = rssEntryToRead.RssEntryId,
                InteractionType = InteractionType.Clicked
            };

            this.database.EventsRssUserInteraction.Add(eventRssClicked);
            this.database.SaveChanges();
        }
Exemple #3
0
        static void Main()
        {
            var xxxxxx = 1000;

            ItanDatabaseContext database = new ItanDatabaseContext();

            database.Configuration.ValidateOnSaveEnabled = false;

            List <User> users = new List <User>();

            Console.WriteLine($"creating {xxxxxx} users ");
            for (int i = 0; i < xxxxxx; i++)
            {
                Console.WriteLine($"{i:D4} of {xxxxxx}");
                var entity = new User {
                    DisplayName = Faker.NameFaker.MaleName(), Email = Faker.InternetFaker.Email()
                };
                users.Add(entity);
                database.Users.Add(entity);
            }

            database.SaveChanges();

            var rssChannels = database.RssChannels.Include(i => i.RssEntries).ToList();

            var rssChannelsSubscriptions = new List <RssChannelSubscription>();

            Console.WriteLine("creating subscriptions");
            for (int i = 0; i < xxxxxx; i++)
            {
                Console.WriteLine($"{i:D4} of {xxxxxx}");
                for (var index = 0; index < rssChannels.Count; index++)
                {
                    var rssChannel = rssChannels[index];
                    Console.WriteLine($"{i:D4}\t{index:D5} of {rssChannels.Count}");
                    var rssChannelSubscription = new RssChannelSubscription(rssChannel.Id, users[i].Id, rssChannel.Title);
                    rssChannelsSubscriptions.Add(rssChannelSubscription);
                }
            }

            database.RssChannelsSubscriptions.AddRange(rssChannelsSubscriptions);
            database.SaveChanges();


            var rssEntriesToRead         = new List <RssEntryToRead>();
            var eventRssUserInteractions = new List <EventRssUserInteraction>();

            for (int i = 0; i < xxxxxx; i++)
            {
                for (var index = 0; index < rssChannels.Count; index++)
                {
                    var rssChannel = rssChannels[index];
                    for (var rssEntryIndex = 0; rssEntryIndex < rssChannel.RssEntries.Count; rssEntryIndex++)
                    {
                        Console.WriteLine($"{i:d5} of {xxxxxx}\t channel:{index:d5} of {rssChannels.Count}\t{rssEntryIndex:d5} of {rssChannel.RssEntries.Count}");
                        var rssChannelRssEntry = rssChannel.RssEntries[rssEntryIndex];
                        var rssEntryToRead     = new RssEntryToRead
                        {
                            IsRead     = Faker.BooleanFaker.Boolean(),
                            IsViewed   = Faker.BooleanFaker.Boolean(),
                            RssEntryId = rssChannelRssEntry.Id,
                            RssChannelSubscriptionId =
                                rssChannelsSubscriptions.Single(
                                    x => x.UserId == users[i].Id && x.RssChannelId == rssChannel.Id).Id,
                        };
                        rssEntriesToRead.Add(rssEntryToRead);
                        var eventRssUserInteraction = new EventRssUserInteraction
                        {
                            InteractionType = Faker.EnumFaker.SelectFrom <InteractionType>(),
                            RssEntryId      = rssChannelRssEntry.Id,
                            UserId          = users[i].Id
                        };
                        eventRssUserInteractions.Add(eventRssUserInteraction);
                    }
                }

                database.RssEntriesToRead.AddRange(rssEntriesToRead);
                database.SaveChanges();

                database.EventsRssUserInteraction.AddRange(eventRssUserInteractions);
                database.SaveChanges();

                rssEntriesToRead.Clear();
                eventRssUserInteractions.Clear();
            }
        }