示例#1
0
        public override IEnumerable <Tuple <string, string> > GetShortInfoList()
        {
            // Информация о текущем состоянии Абонемента. Добавляем всё что должно выводиться для Пользователя
            var result = new List <Tuple <string, string> >
            {
                new Tuple <string, string>("Тип: ", AbonementName),
                new Tuple <string, string>("Доступные Тренировки ", TypeWorkout.ToString()),
                new Tuple <string, string>("Услуги", Spa.ToString()),
                new Tuple <string, string>("Дата Покупки", BuyDate.ToShortDateString()),
                new Tuple <string, string>("Дата Активации", BuyActivationDate.ToShortDateString())
            };

            if (NumPersonalTr > 0)
            {
                result.Add(new Tuple <string, string>("Осталось Персональных", NumPersonalTr.ToString()));
            }
            if (NumAerobicTr > 0)
            {
                result.Add(new Tuple <string, string>("Осталось Аэробных", NumAerobicTr.ToString()));
            }
            if (PayStatus == Pay.Не_Оплачено)
            {
                result.Add(new Tuple <string, string>("Статус Оплаты ", PayStatus.ToString()));
            }

            return(result);
        }
示例#2
0
 // Конструктор
 public SingleVisit(TypeWorkout typeTr, SpaService spa, Pay payStatus, TimeForTr time)
     : base(payStatus, time, typeTr, spa)
 {
     _numAerobicTr  = 0;
     _numPersonalTr = 0;
     DaysLeft       = 1;
     EndDate        = DateTime.Now.Date;
 }
示例#3
0
 protected AbonementBasic()
 {
     this.PayStatus    = Pay.Не_Оплачено;
     TimeTraining      = TimeForTr.Весь_День;
     TypeWorkout       = TypeWorkout.Тренажерный_Зал;
     this.Spa          = SpaService.Спа;
     IsActivated       = false;
     BuyActivationDate = DateTime.Now.Date;
     BuyDate           = DateTime.Now.Date;
 }
示例#4
0
 public override bool CheckInWorkout(TypeWorkout type)
 {
     if (DaysLeft <= 0)
     {
         return(false);
     }
     DaysLeft--;
     //  OnValuesChanged();
     return(true);
 }
示例#5
0
        private void RemoveGymList(string namePerson, TypeWorkout arg)
        {
            var gymItem = GymList?.FindLastIndex((x => x.Name.Equals(namePerson)));

            if (gymItem == null)
            {
                return;
            }
            GymList.RemoveAt((int)gymItem);
        }
示例#6
0
        private void RemoveMiniGroupList(string namePerson, TypeWorkout arg)
        {
            var item = MiniGroupList?.FindIndex((x => x.NamePerson.Equals(namePerson)));

            if (item == null)
            {
                return;
            }
            MiniGroupList.RemoveAt((int)item);
        }
示例#7
0
 // КОНСТРУКТОР
 protected AbonementBasic(Pay payStatus, TimeForTr time, TypeWorkout tr, SpaService spa)
 {
     this.PayStatus    = payStatus;
     TimeTraining      = time;
     TypeWorkout       = tr;
     this.Spa          = spa;
     IsActivated       = false;
     BuyActivationDate = DateTime.Now.Date;
     BuyDate           = DateTime.Now.Date;
 }
示例#8
0
        public override bool CheckInWorkout(TypeWorkout type)
        {
            bool result = false;

            if (IsValid())
            {
                DaysLeft--;
                result = true;
            }
            return(result);
        }
示例#9
0
        public override bool CheckInWorkout(TypeWorkout type)
        {
            var result = false;

            if (!IsValid())
            {
                return(false);
            }
            switch (type)
            {
            case TypeWorkout.Аэробный_Зал:
            {
                if (NumAerobicTr > 0)
                {
                    --NumAerobicTr;
                    result = true;
                }

                break;
            }

            case TypeWorkout.Персональная:
            {
                if (NumPersonalTr > 0)
                {
                    --NumPersonalTr;
                    result = true;
                }

                break;
            }

            case TypeWorkout.Тренажерный_Зал:
            {
                result = true;
                break;
            }

            case TypeWorkout.МиниГруппа:
            {
                if (NumMiniGroup > 0)
                {
                    --NumMiniGroup;
                    result = true;
                }
                break;
            }

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
            // OnValuesChanged();
            return(result);
        }
示例#10
0
 // Конструктор
 public AbonementByDays(Pay payStatus, TimeForTr time, TypeWorkout typeTr, SpaService spa, DaysInAbon numDays)
     : base(payStatus, time, typeTr, spa)
 {
     DaysLeft        = (int)numDays;
     _typeAbonement  = numDays;
     NumAerobicTr    = 0;
     NumPersonalTr   = 0;
     _validityPeriod = (typeTr == TypeWorkout.Персональная || typeTr == TypeWorkout.МиниГруппа)
      ? Options.ValidPeriod12Month: Options.ValidPeriodInMonth;
     // 12 месяцев - длительность абонемента с персональными тренировками
     EndDate = CalculateEndDate(DateTime.Now, _validityPeriod);
 }
示例#11
0
        public NumWorkoutForm(AbonementBasic abonement)
        {
            InitializeComponent();

            _abonement           = abonement;
            _selectedValue       = 1;
            _selectedTypeWorkout = TypeWorkout.Персональная;

            var numbersAvailable = Options.NumAvailTrenToBuy;// 1,5,10 тренировок

            MyComboBox.Initialize(comboBox_num, numbersAvailable, numbersAvailable[0]);

            radioButton_mini.Visible = (abonement is ClubCardA);
        }
示例#12
0
        // Конструктор
        public ClubCardA(Pay payStatus, TimeForTr time, TypeWorkout typeTr, SpaService spa,
                         PeriodClubCard periodInMonths)
            : base(payStatus, time, typeTr, spa)
        {
            _numberMonths = (int)periodInMonths;
            _numAerobicTr = _numberMonths * 10;
            NumPersonalTr = 0;
            NumMiniGroup  = 0;
            _periodAbonem = periodInMonths;

            Freeze = new FreezeClass(periodInMonths);

            EndDateChanged += CalculateDaysLeft;
            EndDate         = DateTime.Now.AddMonths(_numberMonths).Date;
        }
示例#13
0
        private void comboBox_TypeTren_SelectedValueChanged(object sender, EventArgs e)
        {
            var combo = (ComboBox)sender;

            try
            {
                _typeWorkout = MyComboBox.GetComboBoxValue <TypeWorkout>(combo);
            }
            catch (Exception)
            {
                MessageBox.Show(@"Exception 2");
            }

            UpdateCorrectFieldsEn();
        }
示例#14
0
        private void UpdateCorrectFieldsEn()
        {
            // Выходим если не нужна корректировка
            if (!checkBox_Activated.Checked)
            {
                return;
            }

            comboBox_Tren.Enabled     = false;
            comboBox_Personal.Enabled = false;
            comboBox_Aerob.Enabled    = false;
            comboBox_freez.Enabled    = false;

            if (radioButton_Abonement.Checked)
            {
                if (comboBox_TypeTren.SelectedItem != null)
                {
                    _typeWorkout = MyComboBox.GetComboBoxValue <TypeWorkout>(comboBox_TypeTren);

                    switch (_typeWorkout)
                    {
                    case TypeWorkout.Тренажерный_Зал:
                        comboBox_Tren.Enabled = true;
                        break;

                    case TypeWorkout.Аэробный_Зал:
                        comboBox_Aerob.Enabled = true;
                        break;

                    case TypeWorkout.Персональная:
                        comboBox_Personal.Enabled = true;
                        break;

                    case TypeWorkout.МиниГруппа:
                        comboBox_Personal.Enabled = true;
                        break;
                    }
                    comboBox_freez.Enabled = true;
                }
            }

            if (radioButton_ClubCard.Checked)
            {
                comboBox_Personal.Enabled = true;
                comboBox_freez.Enabled    = true;
                comboBox_Aerob.Enabled    = true;
            }
        }
示例#15
0
        public override IEnumerable <Tuple <string, string> > GetShortInfoList()
        {
            var numFreezDays    = Freeze?.GetSpentDays() ?? 0; //Продлим на замороженные дни
            var clubCardEndDate = IsActivated ? EndDate.Date.AddDays(numFreezDays).ToString("d") : BuyDate.AddMonths(12).ToString("d");

            // Информация о текущем состоянии Абонемента. Добавляем всё что должно выводиться для Пользователя
            var result = new List <Tuple <string, string> >
            {
                new Tuple <string, string>("Тип: ", AbonementName),
                new Tuple <string, string>("Доступные Тренировки ", TypeWorkout.ToString()),
                new Tuple <string, string>("Время Тренировок ", TimeTraining.ToString()),
                new Tuple <string, string>("Услуги", Spa.ToString()),
                new Tuple <string, string>("Срок Клубной Карты", _numberMonths + "  мес."),
                new Tuple <string, string>("Дата Покупки", BuyDate.ToString("d")),
                new Tuple <string, string>("Дата Активации", BuyActivationDate.ToString("d")),
                new Tuple <string, string>("Дата Окончания", clubCardEndDate),
                new Tuple <string, string>("Осталось Дней", GetRemainderDays().ToString())
            };

            if (NumPersonalTr > 0)
            {
                result.Add(new Tuple <string, string>("Осталось Персональных", NumPersonalTr.ToString()));
            }

            if (NumAerobicTr > 0)
            {
                result.Add(new Tuple <string, string>("Осталось Аэробных", NumAerobicTr.ToString()));
            }

            if (NumMiniGroup > 0)
            {
                result.Add(new Tuple <string, string>("Осталось МиниГрупп", NumMiniGroup.ToString()));
            }

            if (PayStatus == Pay.Не_Оплачено)
            {
                result.Add(new Tuple <string, string>("Статус Оплаты ", PayStatus.ToString()));
            }

            if (Freeze != null)
            {
                result.Add(new Tuple <string, string>("Осталось дней Заморозки", Freeze.GetAvailableDays().ToString()));
            }

            return(result);
        }
示例#16
0
        /// <inheritdoc />
        /// <summary>
        ///     Добавить Блок Персональных или Аэробных тренировок к Клубной Карте
        /// </summary>
        public override bool AddTrainingsToAbon(TypeWorkout type, int numberToAdd)
        {
            bool result;

            switch (type)
            {
            case TypeWorkout.Аэробный_Зал:
            {
                NumAerobicTr += numberToAdd;
                result        = true;
                break;
            }

            case TypeWorkout.Персональная:
            {
                NumPersonalTr += numberToAdd;
                result         = true;
                break;
            }

            case TypeWorkout.Тренажерный_Зал:
            {
                result = false;
                break;
            }

            case TypeWorkout.МиниГруппа:
            {
                NumMiniGroup += numberToAdd;
                result        = true;

                break;
            }

            default:
            {
                result = false;
                break;
            }
            }
            OnValuesChanged();
            return(result);
        }
示例#17
0
        public override IEnumerable <Tuple <string, string> > GetShortInfoList()
        {
            // Информация о текущем состоянии Абонемента. Добавляем всё что должно выводиться для Пользователя
            var result = new List <Tuple <string, string> >
            {
                new Tuple <string, string>("Тип: ", AbonementName),
                new Tuple <string, string>("Доступные Тренировки ", TypeWorkout.ToString()),
                new Tuple <string, string>("Время Тренировок ", TimeTraining.ToString()),
                new Tuple <string, string>("Осталось Занятий", GetRemainderDays().ToString()),
                new Tuple <string, string>("Услуги", Spa.ToString()),
                new Tuple <string, string>("Дата Покупки", BuyDate.ToString("d")),
                new Tuple <string, string>("Дата Активации", BuyActivationDate.ToString("d")),
                new Tuple <string, string>("Дата Окончания", CalculateEndDate(BuyActivationDate, Options.ValidPeriodInMonth).ToString("d"))
            };

            if (PayStatus == Pay.Не_Оплачено)
            {
                result.Add(new Tuple <string, string>("Статус Оплаты ", PayStatus.ToString()));
            }
            return(result);
        }
示例#18
0
        private void SetInitialValues()
        {
            if (_person.AbonementCurent == null)
            {
                _selectedAbonementName        = "Абонемент";// Вид Абонемента по Умолчанию
                radioButton_Abonement.Checked = true;
                _typeWorkout    = TypeWorkout.Тренажерный_Зал;
                _timeTren       = TimeForTr.Весь_День;
                _spa            = SpaService.Спа;
                _pay            = Pay.Оплачено;
                _daysInAbon     = DaysInAbon.На_12_посещений;
                _periodClubCard = PeriodClubCard.На_1_Месяц;
            }
            else // Абонемент Существует
            {
                _selectedAbonementName = _person.AbonementCurent.AbonementName;
                _typeWorkout           = _person.AbonementCurent.TypeWorkout;
                _timeTren = _person.AbonementCurent.TimeTraining;
                _spa      = _person.AbonementCurent.Spa;
                _pay      = _person.AbonementCurent.PayStatus;
                switch (_person.AbonementCurent)
                {
                case AbonementByDays days:
                    _daysInAbon = days.GetTypeAbonementByDays();
                    radioButton_Abonement.Checked = true;
                    break;

                case ClubCardA abonement:
                    _periodClubCard = abonement.GetTypeClubCard();
                    radioButton_ClubCard.Checked = true;
                    break;

                case SingleVisit _:
                    radioButton_Single.Checked = true;
                    break;
                }
            }
        }
示例#19
0
        private void radioButtons_CheckedChanged(object sender, EventArgs e)
        {
            var radioB = (RadioButton)sender;

            var numbersAvailable = Options.NumAvailTrenToBuy;// 1,5,10 тренировок по умолчанию


            if (radioB.Name == radioButton_personal.Name)
            {
                _selectedTypeWorkout = TypeWorkout.Персональная;
            }
            if (radioB.Name == radioButton_aerob.Name)
            {
                _selectedTypeWorkout = TypeWorkout.Аэробный_Зал;
            }
            if (radioB.Name == radioButton_mini.Name)
            {
                _selectedTypeWorkout = TypeWorkout.МиниГруппа;
                numbersAvailable     = Options.NumAvailMiniGroup;//1, 8
            }
            // Сколько тренировок доступно для конкретного типа трени
            MyComboBox.Initialize(comboBox_num, numbersAvailable, numbersAvailable[0]);
        }
示例#20
0
 /// <summary>
 ///  Добавление Персональных или Аэробных тренировок к текущему абонементу.
 /// </summary>
 public abstract bool AddTrainingsToAbon(TypeWorkout type, int numberToAdd);
示例#21
0
 public override string GetAbonementType()
 {
     return(TypeWorkout.ToString());
 }
示例#22
0
 public override bool AddTrainingsToAbon(TypeWorkout type, int numberToAdd)
 {
     DaysLeft += numberToAdd;
     OnValuesChanged();
     return(true);
 }
示例#23
0
 public void RemoveFromLog(string name, TypeWorkout arg)
 {
     TotalPersonToday--; // Счетчик посетителей за день
     _methodsDelCollection[arg].Invoke(name, arg);
 }
示例#24
0
        /// <summary>
        /// Проверяет если введен пароль.
        /// Удаляет посещение из списков на экране
        /// Удаляет посещение из сохраненной базы
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <param name="typeWorkout"></param>
        private static void DelSelectedItem(object sender, PreviewKeyDownEventArgs e, TypeWorkout typeWorkout)
        {
            if (e.KeyData != Keys.Delete)
            {
                return;
            }
            Logic.AccessRootUser();
            if (!PwdForm.IsPassUnLocked())
            {
                return;
            }
            var name = MyListViewEx.GetSelectedText((ListView)sender);

            // Удаление из журнала
            DailyVisits.GetInstance().RemoveFromLog(name[1], typeWorkout);
            // Удаление с экрана
            MyListViewEx.RemoveSelectedItem((ListView)sender);
            PwdForm.LockPassword();
        }
示例#25
0
 /// <summary>
 /// Отметить и Учесть посещение в абонементе
 /// </summary>
 public abstract bool CheckInWorkout(TypeWorkout type);
示例#26
0
 public WorkoutOptions()
 {
     TypeWorkout    = new TypeWorkout();
     PersonalTrener = new Trener();
     GroupInfo      = new Group();
 }
示例#27
0
 public override bool AddTrainingsToAbon(TypeWorkout type, int numberToAdd)
 {
     return(false); //  Заглушка
 }