public async Task <EventForDetailedDto> GetEvent(int id) { var dbEvent = await _context.Events.Include(e => e.EventParticipants.Select(u => u.User)) .Include(e => e.Posts.Select(p => p.Creator)).Include(e => e.Creator).FirstOrDefaultAsync(e => e.Id == id); return(EventTranslator.ToEventForDetailedDto(dbEvent)); }
public async Task <EventForDetailedDto> DeletePost(int id, int eventId) { var dbPost = await _context.Posts.FirstOrDefaultAsync(p => p.Id == id); _context.Posts.Remove(dbPost); await _context.SaveChangesAsync(); //return id; var dbEvent = await _context.Events.Include(e => e.EventParticipants.Select(u => u.User)) .Include(p => p.Posts.Select(po => po.Creator)).Include(e => e.Creator).FirstOrDefaultAsync(e => e.Id == eventId); return(EventTranslator.ToEventForDetailedDto(dbEvent)); }
public async Task <EventForDetailedDto> AddEventParticipantStatus(int eventId, int userId, string answer) { //Check if participant already exist and has answered to the event var eventParticipant = await _context.EventParticipants .FirstOrDefaultAsync(ep => ep.EventId == eventId && ep.UserId == userId); if (eventParticipant == null) { //Add participants answer to db if not answered earlier var newEp = new EventParticipant { EventId = eventId, UserId = userId, Status = answer }; _context.EventParticipants.Add(newEp); } else { //Update participants answer if already answered eventParticipant.Status = answer; } await _context.SaveChangesAsync(); //Update the participants status for the google calendar event var updatedEp = await _context.EventParticipants.Include(ep => ep.User).Include(ep => ep.Event) .FirstOrDefaultAsync(ep => ep.EventId == eventId && ep.UserId == userId); _googleCalendarService.UpdateGoogleEventParticipantStatus(updatedEp); var dbEvent = await _context.Events.Include(e => e.EventParticipants.Select(u => u.User)) .Include(e => e.Posts.Select(p => p.Creator)).Include(e => e.Creator).FirstOrDefaultAsync(e => e.Id == eventId); return(EventTranslator.ToEventForDetailedDto(dbEvent)); }