Exemple #1
0
        public async Task <bool> CancelAttendance(string eventName, User user)
        {
            // TODO: Clean up
            bool hasCanceledAttendance = false;
            var  eventToCancel         = await _eventRepository.FindBy(info => info.EventName == eventName);

            if (!eventToCancel.Any())
            {
                return(hasCanceledAttendance);
            }

            var attendees = await _eventAttendeesRepository.FindBy(e =>
                                                                   e.EventInfoId == eventToCancel.FirstOrDefault()?.Id&& e.AttendeeId == user.Id);

            if (!attendees.Any())
            {
                return(hasCanceledAttendance);
            }

            foreach (var res in attendees)
            {
                await _eventAttendeesRepository.DeleteItem(res);
            }

            hasCanceledAttendance = true;
            return(hasCanceledAttendance);
        }
Exemple #2
0
        public async Task <EventInfo> CreateEvent(
            User organizer,
            string eventName,
            string eventDescription,
            DateTime?dateTime)
        {
            // TODO: Add exception handling
            var eventInfo = new PersistenceEventInfo
            {
                EventOrganizer   = organizer.Username,
                EventOrganizerId = organizer.Id,
                EventName        = eventName,
                EventDate        = dateTime,
                EventDescription = eventDescription,
                IsActive         = true,
                Created          = DateTime.UtcNow,
                Updated          = DateTime.UtcNow,
            };

            var createdEvent = await _eventRepository.InsertAsync(eventInfo);

            return(_mapper.Map <EventInfo>(createdEvent));
        }
Exemple #3
0
        public async Task <EventInfo> CancelEvent(User organizer, string eventName)
        {
            var eventInfos = await _eventRepository.FindBy(info =>
                                                           info.EventOrganizerId == organizer.Id && info.EventName == eventName);

            if (!eventInfos.Any())
            {
                return(null);
            }

            var eventInfoToUpdate = eventInfos.FirstOrDefault();

            if (eventInfoToUpdate == null)
            {
                return(null);
            }

            eventInfoToUpdate.IsActive = false;
            eventInfoToUpdate.Updated  = DateTime.UtcNow;

            await _eventRepository.UpdateItem(eventInfoToUpdate);

            return(_mapper.Map <EventInfo>(eventInfoToUpdate));
        }