public void SetReservationsOfEmployee(int employeeId, ReservationInfo[] reservations)
        {
            if (reservations == null) throw new ArgumentNullException("reservations");

            Employee employeeEntity = this.repository.GetEmployee(employeeId);
            if (employeeEntity == null)
            {
                var error = String.Format("Employee with Id '{0}' not found.", employeeId);
                throw new ArgumentException(error, "employeeId");
            }

            IEnumerable<Reservation> reservationEntities = reservations.Select(this.CreateReservationEntity);
            employeeEntity.Reservations.Clear();
            employeeEntity.Reservations.AddRange(reservationEntities);

            this.repository.SetEmployee(employeeEntity);
        }
        private ReservationViewModel ConvertToViewModel(ReservationInfo reservation)
        {
            var reservationViewModel = new ReservationViewModel
            {
                Start = reservation.Start,
                End = reservation.End,
                CustomerName = string.Empty,
            };

            if (reservation.CustomerId != null)
            {
                IEnumerable<CustomerInfo> customers = this.customerService.GetCustomers();
                CustomerInfo customer = customers.FirstOrDefault(c => c.Id == reservation.CustomerId);
                if (customer == null)
                {
                    throw new ArgumentException("Unknown customer Id");
                }
                reservationViewModel.CustomerName = customer.Name;
            }

            return reservationViewModel;
        }
        private ReservationInfo ConvertToDataObject(ReservationViewModel reservationViewModel)
        {
            var reservation = new ReservationInfo
                                  {
                                      Start = reservationViewModel.Start,
                                      End = reservationViewModel.End
                                  };

            if (!String.IsNullOrEmpty(reservationViewModel.CustomerName))
            {
                IEnumerable<CustomerInfo> customers = this.customerService.GetCustomers();
                CustomerInfo customer = customers.FirstOrDefault(
                    c => String.Compare(c.Name, reservationViewModel.CustomerName, StringComparison.InvariantCultureIgnoreCase) == 0);
                if (customer == null)
                {
                    throw new ArgumentException("Invalid customer name" + reservationViewModel.CustomerName);
                }
                reservation.CustomerId = customer.Id;
            }

            return reservation;
        }
 private Reservation CreateReservationEntity(ReservationInfo reservation)
 {
     return new Reservation
                {
                    CustomerId = reservation.CustomerId,
                    Start = reservation.Start,
                    End = reservation.End
                };
 }
 public void SetReservationsOfEmployee(int employeeId, ReservationInfo[] reservations)
 {
     throw new NotImplementedException();
 }