示例#1
0
        private void SpawnPrenotationCreator()
        {
            PrenotationCreatorView prenotationCreatorView = new PrenotationCreatorView();

            AddInformation(prenotationCreatorView);
            new PrenotationCreatorPresenter(prenotationCreatorView);
            prenotationCreatorView.Show();
        }
        public PrenotationCreatorPresenter(PrenotationCreatorView view)
        {
            #region Precondizioni
            if (view == null)
            {
                throw new ArgumentNullException("view null");
            }
            #endregion
            _itemsPrenotation = new List <ICustomizableItemPrenotation>();
            _bundles          = new List <IBundle>();
            _packets          = new List <IPacket>();

            _fromDateTimePicker            = view.FromDateTimePicker;
            _toDateTimePicker              = view.ToDateTimePicker;
            _itemPrenotationListView       = view.ItemPrenotationListView;
            _bundleListView                = view.BundleListView;
            _createButton                  = view.CreateButton;
            _clearButton                   = view.ClearButton;
            _packetListView                = view.PacketListView;
            _trackingDeviceLabel           = view.TrackingDeviceLabel;
            _customerComboBox              = view.CustomerComboBox;
            _associateTrackingDeviceButton = view.AssociateTrackingDeviceButton;
            _errorProvider                 = view.ErrorProvider;
            _view = view;

            // init handler
            _clearButton.Click                     += ClearHandler;
            _view.AbortButton.Click                += CancelButtonHandler;
            _createButton.Click                    += CreateButtonHandler;
            _fromDateTimePicker.ValueChanged       += FromDateChangedHandler;
            _toDateTimePicker.ValueChanged         += ToDateChangedHandler;
            _customerComboBox.SelectedIndexChanged += CustomerChangedHandler;
            _associateTrackingDeviceButton.Click   += AddTrackingDeviceButtonHandler;
            _view.AddBundleButton.Click            += AddBundlesButtonHandler;
            _view.AddPacketButton.Click            += AddPacketsButtonHandler;
            _view.AddItemPrenotationButton.Click   += AddItemPrenotationButtonHandler;

            // init componenti
            _customerComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            _customerComboBox.DisplayMember = "DisplayInfo";
            _fromDateTimePicker.MinDate     = DateTime.Now.Date;
            _authLevel = view.RetrieveTagInformation <AuthorizationLevel>("authorizationLevel");

            if (_authLevel == AuthorizationLevel.GUEST)
            {
                throw new InvalidOperationException("Gli utenti GUEST non posso effettuare prenotazioni");
            }

            if (_authLevel == AuthorizationLevel.CUSTOMER)
            {
                _view.CustomerLabel.Visible = false;
                _view.CustomerLabel.Enabled = false;
                _loginInfo = view.RetrieveTagInformation <ILoginInformation>("loginInformation");
                _customer  = (from u in _uCoord.RegisteredUsers
                              where (u is ICustomer && u.Username.Equals(_loginInfo.Username))
                              select u as ICustomer).FirstOrDefault();
                if (_customer == null)
                {
                    MessageBox.Show("Non risultato registrato come cliente nel sistema. Chiama lo staff");
                    _view.Close();
                }
                _customerComboBox.Items.Add(_customer);
                _customerComboBox.SelectedIndex = 0;
                _customerComboBox.Enabled       = false;
            }

            if (_authLevel >= AuthorizationLevel.BASIC_STAFF)
            {
                _customerComboBox.Items.Clear();
                foreach (ICustomer c in _uCoord.Customers)
                {
                    _customerComboBox.Items.Add(c);
                }
                if (_customerComboBox.Items.Count > 0)
                {
                    _customerComboBox.SelectedIndex = 0;
                }
            }

            _createButton.Enabled = false;
            _clearButton.Enabled  = false;
        }