Exemplo n.º 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);
 }