Esempio n. 1
0
        public SessionAttendee AddAttendeeSession(AddAttendeeAtSession cmd, Seminar seminar)
        {
            if (Status != SessionStatus.Running)
            {
                throw new DomainException($"Can't add attendee at {Status} session");
            }

            var registered = seminar.RegisteredAttendees.Any(x => x.Id == cmd.Id);

            if (!registered)
            {
                throw new DomainException($"Attendee {cmd.Id} not registered at seminar");
            }

            var attendeeToAdd = new SessionAttendee
            {
                Id                = cmd.Id,
                SessionId         = cmd.SessionId,
                AttendeeStartTime = DateTime.Now,
            };

            Attendees.Add(attendeeToAdd);

            return(attendeeToAdd);
        }
Esempio n. 2
0
        public async Task AddAttendeeAsync(AddAttendeeAtSession cmd)
        {
            cmd.Validate();

            var session = await _sessionsDao.GetAsync(cmd.SessionId);

            if (session == null)
            {
                throw new ObjectAlreadyExitsException(cmd.SessionId, typeof(SeminarSession));
            }

            var seminar = await _seminarDao.GetAsync(session.SeminarId);

            if (seminar == null)
            {
                throw new ObjectNotFoundException(session.SeminarId, typeof(SeminarSession));
            }

            var attendee = session.AddAttendeeSession(cmd, seminar);
            await _sessionsDao.AddAttendeeAsync(attendee);
        }