Beispiel #1
0
        protected override async Task ApplyUserUpdatesAsync(BrideForeverDataContext context, User user, DateTime yesterday)
        {
            var emails =
                await _brideForeverService.GetCountOfSentEmails(new[] { user }, yesterday, yesterday);

            var existingRecord = await context.UsersEmails.FirstOrDefaultAsync(item => item.User.ID == user.ID && item.Date == yesterday);

            context.UsersEmails.AddOrUpdate(u => u.Id, new UserEmails
            {
                Id     = existingRecord?.Id ?? Guid.NewGuid(),
                User   = user,
                Date   = yesterday,
                Emails = emails.ToBytes()
            });
        }
        public async Task <IEnumerable <UserSentEmailsStatisticsModel> > GetUserSentEmailsCountToday([FromUri] string[] userNames)
        {
            var users = await GetUsefulUsers(userNames);

            var statistics = await _brideForeverService.GetCountOfSentEmails(users.ToArray(), DateTime.UtcNow.ToStartOfTheDay(), DateTime.UtcNow);

            return(statistics.Select(emailStatistics => new UserSentEmailsStatisticsModel
            {
                User = new UserModel
                {
                    Title = emailStatistics.User.Name
                },

                EmailsCount = emailStatistics.SentEmails
            }));
        }