コード例 #1
0
        public EventRoomDto UpdateEventRoom(EventRoomDto eventRoom, int eventId, string token)
        {
            try
            {
                if (eventRoom.RoomReservationId == 0)
                {
                    AddRoom(eventId, eventRoom, token);
                }
                else
                {
                    UpdateRoom(eventId, eventRoom, token);
                }

                foreach (var equipment in eventRoom.Equipment)
                {
                    if (equipment.EquipmentReservationId == 0)
                    {
                        AddEquipment(equipment, eventId, eventRoom, token);
                    }
                    else
                    {
                        UpdateEquipment(equipment, eventId, eventRoom, token);
                    }
                }
            }
            catch (Exception ex)
            {
                var msg = "Event Service: UpdateEventReservation";
                _logger.Error(msg, ex);
                throw new Exception(msg, ex);
            }

            return(eventRoom);
        }
コード例 #2
0
        public IHttpActionResult UpdateEventRoom([FromBody] EventRoomDto room, int eventId)
        {
            if (ModelState.IsValid)
            {
                return(Authorized(token =>
                {
                    try
                    {
                        if (eventId == 0)
                        {
                            throw new ApplicationException("Invalid Event Id");
                        }

                        return Ok(_eventService.UpdateEventRoom(room, eventId, token));
                    }
                    catch (Exception e)
                    {
                        var msg = "EventToolController: UpdateEventRoom " + room.Name;
                        logger.Error(msg, e);
                        var apiError = new ApiErrorDto(msg, e);
                        throw new HttpResponseException(apiError.HttpResponseMessage);
                    }
                }));
            }
            var errors    = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
            var dataError = new ApiErrorDto("Event Data Invalid", new InvalidOperationException("Invalid Event Data" + errors));

            throw new HttpResponseException(dataError.HttpResponseMessage);
        }
コード例 #3
0
        private void AddEquipment(EventRoomEquipmentDto equipment, int eventId, EventRoomDto room, string token)
        {
            var equipmentReservation = new MpEquipmentReservationDto();

            equipmentReservation.Cancelled         = false;
            equipmentReservation.EquipmentId       = equipment.EquipmentId;
            equipmentReservation.EventId           = eventId;
            equipmentReservation.QuantityRequested = equipment.QuantityRequested;
            equipmentReservation.RoomId            = room.RoomId;
            equipmentReservation.Notes             = room.Notes;
            _equipmentService.CreateEquipmentReservation(equipmentReservation);
        }
コード例 #4
0
        private List <EventRoomDto> PopulateRoomReservations(int eventId, bool includeEquipment, bool includeParticipants)
        {
            var rooms   = _roomService.GetRoomReservations(eventId);
            var roomDto = new List <EventRoomDto>();

            foreach (var room in rooms)
            {
                var r = new EventRoomDto();
                r.Cancelled         = room.Cancelled;
                r.Hidden            = room.Hidden;
                r.LayoutId          = room.RoomLayoutId;
                r.Notes             = room.Notes;
                r.RoomId            = room.RoomId;
                r.RoomReservationId = room.EventRoomId;
                r.Capacity          = room.Capacity;
                r.CheckinAllowed    = room.CheckinAllowed;
                r.Name       = room.Name;
                r.Label      = room.Label;
                r.Volunteers = room.Volunteers;

                if (includeEquipment)
                {
                    var equipmentDto = new List <EventRoomEquipmentDto>();
                    var equipment    = _equipmentService.GetEquipmentReservations(eventId, room.RoomId);
                    foreach (var equipmentReservation in equipment)
                    {
                        var eq = new EventRoomEquipmentDto();
                        eq.Cancelled              = equipmentReservation.Cancelled;
                        eq.EquipmentId            = equipmentReservation.EquipmentId;
                        eq.QuantityRequested      = equipmentReservation.QuantityRequested;
                        eq.EquipmentReservationId = equipmentReservation.EventEquipmentId;
                        eq.Notes = equipmentReservation.Notes;
                        equipmentDto.Add(eq);
                    }
                    r.Equipment = equipmentDto;
                }

                if (includeParticipants)
                {
                    var p = _eventParticipantService.GetEventParticipants(eventId, room.RoomId);
                    r.ParticipantsAssigned  = p == null ? 0 : p.Count;
                    r.ParticipantsCheckedIn = p == null ? 0 : p.Where(participant => participant.ParticipantStatus == 3).ToList().Count;
                    r.ParticipantsSignedIn  = p == null ? 0 : p.Where(participant => participant.ParticipantStatus == 4).ToList().Count;
                }

                roomDto.Add(r);
            }
            return(roomDto);
        }
コード例 #5
0
        private int AddRoom(int eventId, EventRoomDto room, string token)
        {
            var roomReservation = new MpRoomReservationDto();

            roomReservation.Cancelled      = false;
            roomReservation.EventId        = eventId;
            roomReservation.Hidden         = room.Hidden;
            roomReservation.Notes          = room.Notes;
            roomReservation.RoomId         = room.RoomId;
            roomReservation.RoomLayoutId   = room.LayoutId;
            roomReservation.Capacity       = room.Capacity;
            roomReservation.Label          = room.Label;
            roomReservation.CheckinAllowed = room.CheckinAllowed;
            roomReservation.Volunteers     = room.Volunteers;
            return(_roomService.CreateRoomReservation(roomReservation));
        }