예제 #1
0
        public async Task <IActionResult> AddEvent(EventToAddDTO eventToAdd)
        {
            var eventDB = await _repo.Add(eventToAdd);

            var eventToReturn = _mapper.Map <EventToReturnDTO>(eventDB);

            return(Ok(eventToReturn));
        }
예제 #2
0
        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);
        }