示例#1
0
    public async Task <IActionResult> Diary(string babyName, string inputDate)
    {
        var date = DateTime.Now;

        if (!string.IsNullOrEmpty(inputDate))
        {
            date = DateTime.Parse(inputDate);
        }

        var entries = await _sqLiteService.GetEntriesFromDb(date, User, babyName);

        var importResultModel = new ImportResultModel
        {
            Entries = entries
        };
        var model = DiaryService.GetDays(importResultModel);

        model.Date         = date.ToString("yyyy-MM-dd");
        model.DateNext     = date.AddDays(1).ToString("yyyy-MM-dd");
        model.DatePrevious = date.AddDays(-1).ToString("yyyy-MM-dd");
        model.BabyName     = babyName;
        model.Profile      = await _accountService.GetProfile(User);

        var memories = await _sqLiteService.GetMemoriesFromDb(DateTime.Now, User, babyName);

        model.MemoriesBadgeCount = memories.Count;
        model.ShowMemoriesLink   = true;

        ViewData["LastEntry"] = await _sqLiteService.GetLastEntryDateTime(User, babyName);

        return(View("Diary", model));
    }
示例#2
0
    public async Task SendMemoriesEmail()
    {
        var users = await _accountService.SearchUsersWithEnableMemoriesEmail();

        if (users?.Any() != true)
        {
            return;
        }

        foreach (var user in users)
        {
            var shortUserId = AccountService.GetUserId(user.UserId);

            var babies = _sqLiteService.GetBabiesFromDb(shortUserId);

            foreach (var baby in babies)
            {
                var memories = _sqLiteService.GetMemoriesFromDb(DateTime.Now, shortUserId, baby.BabyName);

                _logger.LogInformation($"Found {memories.Count} memories for {baby.BabyName}");

                if (memories.Count > 0)
                {
                    await SendEmail(memories, user, shortUserId, baby.BabyName);
                }
            }
        }
    }