Exemplo n.º 1
0
        public async Task AddAsync(string userId, ReminderRequest request, ReminderRegistration registration)
        {
            var user = await context.Users.Where(v => v.Id == userId).SingleOrDefaultAsync();

            var storedReminder = new StoredReminder()
            {
                ClientState     = request.ClientState,
                Expires         = registration.Expires,
                Id              = registration.Id,
                Minutes         = request.Minutes,
                NotificationUri = request.NotificationUri
            };

            if (null == user)
            {
                user = new User()
                {
                    Id        = userId,
                    Reminders = new List <StoredReminder>()
                    {
                        storedReminder
                    }
                };
                await context.Users.AddAsync(user);
            }
            else
            {
                if (null == user.Reminders)
                {
                    user.Reminders = new List <StoredReminder>();
                }
                user.Reminders.Add(storedReminder);
            }
            await context.SaveChangesAsync();
        }
Exemplo n.º 2
0
        public async Task <ReminderRegistration> RegisterAsync(string userId, ReminderRequest request)
        {
            var registration = new ReminderRegistration()
            {
                Expires = DateTime.Now.AddMinutes(ExpirationMinutes),
                Id      = Guid.NewGuid().ToString()
            };
            await reminderRepository.AddAsync(userId, request, registration);

            await calendarService.InstallNotifications(userId);

            await MaintainReminderAsync(registration.Id);

            return(registration);
        }