public async Task <IActionResult> AddEvent(EventToAddDTO eventToAdd) { var eventDB = await _repo.Add(eventToAdd); var eventToReturn = _mapper.Map <EventToReturnDTO>(eventDB); return(Ok(eventToReturn)); }
public async Task <Event> Add(EventToAddDTO eventToAdd) { var user = await _context.Users.Include(x => x.UserEvents).FirstOrDefaultAsync(x => x.Id == eventToAdd.UserId); if (user == null) { return(null); } var addressDB = new Address() { MailingAddress = eventToAdd.MailingAddress, ZipCode = eventToAdd.ZipCode, State = eventToAdd.State, City = eventToAdd.City }; var eventDB = new Event() { EventName = eventToAdd.EventName, EventPlace = eventToAdd.EventPlace, EventType = _context.EventTypes.FirstOrDefault(x => x.EventTypeName == eventToAdd.EventType), Address = addressDB, IsActive = true, CreatedOn = DateTime.Now, CreatedBy = eventToAdd.UserId, RSVP = eventToAdd.RSVP, GiftsAddBy = eventToAdd.GiftsAddBy, DateTimeOfEvent = eventToAdd.DateTimeOfEvent, MinPrice = Convert.ToDouble(eventToAdd.MinPrice), MaxPrice = Convert.ToDouble(eventToAdd.MaxPrice), }; // eventDB.EventType.EventTabs = GetEventTabs(eventDB.EventType); await _context.Events.AddAsync(eventDB); foreach (var eventOption in eventToAdd.EventOptionsIds) { var eventOptionEvent = new EventOptionEvent(); eventOptionEvent.EventId = eventDB.Id; eventOptionEvent.Event = eventDB; eventOptionEvent.EventOptionId = eventOption; eventOptionEvent.EventOption = _context.EventOptions.FirstOrDefault(x => x.Id == eventOption); _context.EventOptionEvent.Add(eventOptionEvent); eventDB.EventOptionEvents.Add(eventOptionEvent); } var userEvent = new UserEvent(); userEvent.User = user; userEvent.Event = eventDB; userEvent.RoleId = Roles.AdminRole(); userEvent.Participats = eventToAdd.AdminParticipates; user.UserEvents.Add(userEvent); eventDB.UserEvents.Add(userEvent); await _context.SaveChangesAsync(); return(eventDB); }