public IActionResult Post([FromBody] EventAlarmToSave eventAlarm) { string uid = _manager.GetUserId(User); _service.SaveEventAlarm(eventAlarm, uid); return(Ok(eventAlarm)); }
public void SaveEventAlarm(EventAlarmToSave eventAlarmToSave, string uid) { ApplicationUser owner = _repo.Query <ApplicationUser>().Where(u => u.Id == uid).FirstOrDefault(); CalendarEvent calendarEvent = _repo.Query <CalendarEvent>().Where(c => c.Id == eventAlarmToSave.CalenderEventId).FirstOrDefault(); DateTime alarmDate = DateTime.Now; // get the calender Event's time DateTime eventDateTime = calendarEvent.EventDateTime; // now we need to find out when the user wants the alarm set for ... int negOffsetTime = eventAlarmToSave.OffsetTime * -1; switch (eventAlarmToSave.OffsetPeriod) { case "minute": alarmDate = eventDateTime.AddMinutes(negOffsetTime); break; case "hour": alarmDate = eventDateTime.AddHours(negOffsetTime); break; case "day": alarmDate = eventDateTime.AddDays(negOffsetTime); break; case "week": alarmDate = eventDateTime.AddDays(negOffsetTime * 7); break; } // Convert to the eventAlarm model to save EventAlarm saveableAlarm = new EventAlarm { AlarmTime = alarmDate, AlarmMethod = eventAlarmToSave.AlarmMethod }; if (saveableAlarm.Id == 0) { saveableAlarm.isActive = true; _repo.Add(saveableAlarm); } else { _repo.Update(saveableAlarm); } saveableAlarm.Owner = owner; saveableAlarm.Event = calendarEvent; _repo.SaveChanges(); }