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)); }