public async Task <ActionResult <Models.Reminder> > UpdateReminder(int id, [FromBody] Models.Reminder reminder) { try { var existingReminder = await Context.Reminders.FindAsync(id); if (existingReminder == null) { return(NotFound()); } existingReminder.ChannelId = reminder.ChannelId; existingReminder.Message = reminder.Message; existingReminder.OwnerId = reminder.OwnerId; existingReminder.SentDateUtc = reminder.SentDateUtc; existingReminder.ReminderDateUtc = reminder.ReminderDateUtc; await Context.SaveChangesAsync(); return(Ok(Mapper.Map <Entities.Reminder, Models.Reminder>(existingReminder))); } catch (Exception ex) { return(InternalServerError("Failed to update reminder", ex)); } }
public async Task <ActionResult <Models.Reminder> > Post([FromBody] Models.Reminder reminder) { try { var reminderEntity = Mapper.Map <Models.Reminder, Entities.Reminder>(reminder); var discordUser = await Context.DiscordUsers.FindAsync(reminder.OwnerId); if (discordUser == null) { return(BadRequest(new { message = $"Unable to find user {reminder.OwnerId}" })); } var channel = await Context.Channels.FindAsync(reminder.ChannelId); if (channel == null) { return(BadRequest(new { message = $"Unable to find channel {reminder.ChannelId}" })); } if (!string.IsNullOrWhiteSpace(discordUser.Timezone)) { var timeZoneInfo = TZConvert.GetTimeZoneInfo(discordUser.Timezone); reminderEntity.ReminderDateUtc = reminderEntity.ReminderDateUtc - timeZoneInfo.GetUtcOffset(DateTime.Now); } await Context.Reminders.AddAsync(reminderEntity); await Context.SaveChangesAsync(); return(reminder); } catch (Exception ex) { return(InternalServerError("Failed to post reminder.", ex)); } }