Esempio n. 1
0
        /// <summary>
        /// Конструктор формы распределения  персонала, задействованного в простое сервиса
        /// </summary>
        /// <param name="selectedServiceIdle">Выбранный экземпляр простоя</param>
        public StaffDistributonForm(ServiceIdle selectedServiceIdle)
        {
            SelectedServiceIdle = selectedServiceIdle;
            InitializeComponent();

            btn_OK.Image     = new Bitmap(Resources.camera_test, new Size(20, 20));
            btn_Cancel.Image = new Bitmap(Resources.no, new Size(20, 20));
            _ctx             = new Context();
            BindCollections();
        }
        /// <summary>
        /// Конструктор формы расчета стоимости простоя сервиса
        /// </summary>
        /// <param name="selectedServiceIdle">Выбранный экземпляр простоя</param>
        public EditIdleItemForm(ServiceIdle selectedServiceIdle)
        {
            _serviceIdle = selectedServiceIdle;
            InitializeComponent();

            _ctx = new Context();

            btn_OK.Image     = new Bitmap(Resources.camera_test, new Size(20, 20));
            btn_Cancel.Image = new Bitmap(Resources.no, new Size(20, 20));
            InitBindings(selectedServiceIdle);
            comboBox_DurationType.SelectedIndex = 0;
        }
        /// <summary>
        /// Обработчик события нажатия клавиши мыши на элемент главного меню,
        /// который открывает диалоговое окно формы распределения задействованного персонала
        /// </summary>
        private void распределениеПерсоналаToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var staffDistributonForm = new StaffDistributonForm(_serviceIdle);

            if (staffDistributonForm.ShowDialog() == DialogResult.OK)
            {
                DialogResult = DialogResult.OK;
                _serviceIdle = staffDistributonForm.SelectedServiceIdle;
                // количество администраторов, задействованных для этого
                _usedAdminsCount = _serviceIdle.User.Count;
                CalcIdleCost();
            }
        }
        /// <summary>
        /// Инициализация привязок
        /// </summary>
        private void InitBindings(ServiceIdle serviceIdle)
        {
            serviceIdleBindingSource.DataSource = serviceIdle;
            serviceIdleBindingSource.ResumeBinding();

            // длительность простоя
            _duration = (serviceIdle.EndPeriod - serviceIdle.BeginPeriod).TotalMinutes;
            // количество пользователей, отключенных при этом
            _disabledUsersCount = serviceIdle.Service.User.Count;
            // количество администраторов, задействованных для этого
            _usedAdminsCount = serviceIdle.User.Count;

            // Годовой доход компанни
            CostIdleParams idleParams = null;

            try
            {
                // Попытка загрузки из файла
                idleParams = CostIdleParams.Load();
                // При отсутсвтсвии файла данные берутся из БД
                if (idleParams == null)
                {
                    idleParams = _ctx.GetIdleParamsFormDatabase();
                }
            }
            catch
            {
                // в случае ошибки данные берутся из БД
                idleParams = _ctx.GetIdleParamsFormDatabase();
            }
            finally
            {
                costIdleParamsBindingSource.DataSource = idleParams;
                costIdleParamsBindingSource.ResumeBinding();
            }

            CalcIdleCost();
        }
Esempio n. 5
0
        /// <summary>
        /// Обработчик события нажатия клавиши мыши на элемент главного меню,
        /// который открывает диалоговое окно формы редактирования выбранного простоя
        /// </summary>
        private void редактированиеВыбранногоПростояToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (SelectedIdleItem == null)
            {
                MessageBox.Show("Выберите простой сервиса", "Ошибка", MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            try
            {
                ServiceIdle selectedServiceIdle = _ctx.GetServiceIdleByID(SelectedIdleItem.Id);
                var         editIdleItemForm    = new EditIdleItemForm(selectedServiceIdle);
                if (editIdleItemForm.ShowDialog() == DialogResult.OK)
                {
                    BindServiceIdle();
                }
            }
            catch
            {
                MessageBox.Show("Произошла ошибка при получении информации о выбранном простое сервиса!", "Ошибка",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }