Example #1
0
        public EventModel RespondToEvent(RespondToEventRequest respondToEventRequest)
        {
            var userEvent =
                _repository.GetEntities <UserEvent>()
                .FirstOrDefault(
                    p => p.EventId == respondToEventRequest.EventId && p.UserId.Equals(respondToEventRequest.UserId));

            if (userEvent != null)
            {
                userEvent.Response = respondToEventRequest.EventResponse;

                _repository.Update(userEvent);
            }
            else
            {
                var newUserEvent = new UserEvent()
                {
                    UserId   = respondToEventRequest.UserId,
                    EventId  = respondToEventRequest.EventId,
                    Response = respondToEventRequest.EventResponse
                };

                _repository.Add(newUserEvent);
            }

            _repository.SaveChanges();

            userEvent =
                _repository.GetEntities <UserEvent>()
                .FirstOrDefault(
                    p => p.EventId == respondToEventRequest.EventId && p.UserId.Equals(respondToEventRequest.UserId));

            var goingUsers     = GetGoingStatus(userEvent, EventResponse.Going);
            var tentativeUsers = GetGoingStatus(userEvent, EventResponse.Tentative);
            var notNowUsers    = GetGoingStatus(userEvent, EventResponse.NotNow);

            return(new EventModel()
            {
                Going = userEvent != null && userEvent.Response.Equals(EventResponse.Going.ToString()),
                Tentative = userEvent != null && userEvent.Response.Equals(EventResponse.Tentative.ToString()),
                NotNow = userEvent != null && userEvent.Response.Equals(EventResponse.NotNow.ToString()),
                GoingUsers = goingUsers,
                TentativeUsers = tentativeUsers,
                NotNowUsers = notNowUsers
            });
        }
 public EventModel RespondToEvent(RespondToEventRequest respondToEventRequest)
 {
     respondToEventRequest.UserId = UserId;
     return(_eventService.RespondToEvent(respondToEventRequest));
 }