Exemplo n.º 1
0
 public RoomService(
     ISessionScheduleValidator sessionScheduleValidator,
     IRoomRepository roomRepository,
     IMapper mapper)
 {
     _sessionScheduleValidator = sessionScheduleValidator;
     _roomRepository           = roomRepository;
     _mapper = mapper;
 }
Exemplo n.º 2
0
Arquivo: Room.cs Projeto: meutley/ISTS
        public SessionRequest ApproveSessionRequest(Guid requestId, ISessionScheduleValidator sessionScheduleValidator)
        {
            var request = SessionRequests.Single(r => r.Id == requestId);
            var isValid = Room.ValidateSchedule(this.Id, null, request.RequestedTime, sessionScheduleValidator);

            if (isValid)
            {
                request.Approve();
                return(request);
            }

            throw new InvalidOperationException();
        }
Exemplo n.º 3
0
Arquivo: Room.cs Projeto: meutley/ISTS
        public Session RescheduleSession(Session session, DateRange newSchedule, ISessionScheduleValidator sessionScheduleValidator)
        {
            Session result = null;

            DoWithSession(session.Id, (s) =>
            {
                var validatorResult = Room.ValidateSchedule(this.Id, session.Id, newSchedule, sessionScheduleValidator);
                if (validatorResult)
                {
                    var sessionModel = s.Reschedule(newSchedule);
                    result           = sessionModel;
                }
            });

            return(result);
        }
Exemplo n.º 4
0
Arquivo: Room.cs Projeto: meutley/ISTS
        public SessionRequest RequestSession(
            Guid requestingUserId,
            DateRange requestedTime,
            Guid?roomFunctionId,
            ISessionScheduleValidator sessionScheduleValidator)
        {
            var result = Room.ValidateSchedule(this.Id, null, requestedTime, sessionScheduleValidator);

            if (result)
            {
                var request = SessionRequest.Create(
                    requestingUserId,
                    this.Id,
                    requestedTime.Start,
                    requestedTime.End,
                    roomFunctionId);

                SessionRequests.Add(request);
                return(request);
            }

            throw new InvalidOperationException();
        }
Exemplo n.º 5
0
Arquivo: Room.cs Projeto: meutley/ISTS
 public Session CreateSession(DateRange scheduledTime, Guid sessionRequestId, ISessionScheduleValidator sessionScheduleValidator)
 {
     return(CreateSessionCore(scheduledTime, sessionRequestId, sessionScheduleValidator));
 }
Exemplo n.º 6
0
Arquivo: Room.cs Projeto: meutley/ISTS
 public Session CreateSession(DateRange scheduledTime, ISessionScheduleValidator sessionScheduleValidator)
 {
     return(CreateSessionCore(scheduledTime, null, sessionScheduleValidator));
 }
Exemplo n.º 7
0
Arquivo: Room.cs Projeto: meutley/ISTS
        private static bool ValidateSchedule(Guid roomId, Guid?sessionId, DateRange schedule, ISessionScheduleValidator sessionScheduleValidator)
        {
            var validatorResult = AsyncHelper.RunSync(() => sessionScheduleValidator.ValidateAsync(roomId, sessionId, schedule));

            if (validatorResult != SessionScheduleValidatorResult.Success)
            {
                ScheduleValidatorHelper.HandleSessionScheduleValidatorError(validatorResult);
                return(false);
            }

            return(true);
        }
Exemplo n.º 8
0
Arquivo: Room.cs Projeto: meutley/ISTS
        private Session CreateSessionCore(DateRange scheduledTime, Guid?sessionRequestId, ISessionScheduleValidator sessionScheduleValidator)
        {
            var result = Room.ValidateSchedule(this.Id, null, scheduledTime, sessionScheduleValidator);

            if (result)
            {
                var session = Session.Create(this.Id, scheduledTime, sessionRequestId);
                Sessions.Add(session);
                return(session);
            }

            throw new InvalidOperationException();
        }