public async Task <IActionResult> CreateEvent([FromBody] NewEventRequest newEvent) { var user = UserAccessor.User; if (user == null) { return(Unauthorized("Your email address must be verified before creating an event.")); } if (newEvent == null) { throw new ArgumentNullException(nameof(newEvent)); } var @event = EventService.CreateNewEvent(user.EmailAddress, newEvent.AuthorName, newEvent.TimeZoneId); await EventRepositoryWrite.Insert(@event).ConfigureAwait(false); return(CreatedAtAction(nameof(GetEvent), new { id = @event.Id }, Mapper.MapResponse(@event, DateTimeProvider))); }
public IDResponse CreateEvent(NewEventRequest request) { try { var eve = new Event(); using (DataBaseContext db = new DataBaseContext()) { eve.Title = request.Title; eve.Description = request.Description; eve.StartTime = DateTime.Parse(request.StartTimeStringUtc, new CultureInfo("en-US")); eve.EndTime = DateTime.Parse(request.EndTimeStringUtc, new CultureInfo("en-US")); eve.EventColor = request.EventColor; db.Events.Add(eve); db.SaveChanges(); } //send Push Notification InvokeAfterSec(1500, () => { using (DataBaseContext db = new DataBaseContext()) { var users = db.Users.Where(u => !string.IsNullOrEmpty(u.Platform) && !string.IsNullOrEmpty(u.DeviceToken)).ToList(); users = users.Where(u => !u.IsAdmin).ToList(); var pushMessage = new PushMessage() { Alert = "Hi, a new appointment created for " + eve.StartTime.ToString("dd MMM") }; PushNotification(users, pushMessage); } }); return(new IDResponse { ID = eve.ID, Success = true }); } catch (Exception ex) { return(new IDResponse { ErrorMessage = ex.ToString() }); } }