示例#1
0
        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)));
        }
示例#2
0
        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()
                });
            }
        }