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); }
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); }
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); }
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); }
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)); }