示例#1
0
        private async void dateTimePicker_Visit_ValueChanged(object sender, EventArgs e)
        {
            var lVisit = dateTimePicker_Visit.Value.Date;

            if (lVisit.CompareTo(DateTime.Now.Date) > 0)
            {
                dateTimePicker_Visit.Value = DateTime.Now;
                return;
            }

            // Если последний визит не важен -выходим
            if (lVisit.CompareTo(DateTime.Now.Date) == 0)
            {
                _reqLastVisit = _personsAll.Values;
            }
            else
            {
                var fullJournal       = DataBaseLevel.GetPersonsVisitDict();
                var resultByCondition = fullJournal.Where(x => x.Value.Any(y => y.DateTimeVisit.Date.CompareTo(lVisit) == 0)).Select(x => x.Key);
                var resultConverted   = resultByCondition.Select(PersonObject.GetLink);
                _reqLastVisit = resultConverted.ToList();
            }
            var result = await GetUpdatedRequestsAsync();

            ShowPersons(result);
        }
示例#2
0
        // Работники Тренеры Админ
        public static bool EmployeeAdd2DataBase(Employee emploerToAdd)
        {
            var manhattanInfo = DataBaseLevel.GetManhattanInfo();

            var isTrener = emploerToAdd.IsTrener;

            //  Проверка. Содержится ли в списках такое имя. Если да - выходим.
            if (IsEmploeeExists(emploerToAdd, manhattanInfo))
            {
                var oldPhone        = GetPhoneFromBase(emploerToAdd, manhattanInfo);
                var phoneNotChanged = emploerToAdd.Phone.Equals(oldPhone);

                if (phoneNotChanged)
                {
                    MessageBox.Show(@"Такое имя уже существует!", @"Внимание", MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                    return(false);
                }

                // Обновляем номер телефона
                if (isTrener)
                {
                    FindTrenerInBase(emploerToAdd, manhattanInfo).Phone = emploerToAdd.Phone;
                }
                else
                {
                    FindAdminInBase(emploerToAdd, manhattanInfo).Phone = emploerToAdd.Phone;
                }
                return(false); // Чтобы не добавлялся ещё один элемент в список. т.к. он уже есть
            }

            AddEmploee(emploerToAdd, manhattanInfo);
            return(true);
        }
示例#3
0
 private void Awake()
 {
     if (itLevelCheker)
     {
         DataBaseLevel data = DataWork.LoadLevel();
         levelProgress = data.levelProgress;
     }
 }
示例#4
0
        //=========================================================================================
        public void Add(string name, DataBaseLevel type)
        {
            CompletionVariant item = new CompletionVariant()
            {
                Text = name, ImageIndex = (int)type
            };

            this.Add(item);
        }
示例#5
0
 public static void SaveEverithing()
 {
     lock (_locker)
     {
         Options.SaveProperties(); // Сохранение пользовательских настроек
         DataBaseLevel.SerializeObjects();
         AbonementController.GetInstance().Save();
     }
 }
示例#6
0
        private bool IsPersonNumberOk(string number)
        {
            var isExist = DataBaseM.FindByPersonalNumber(DataBaseLevel.GetPersonsList(), number, out var person);

            if (!isExist)
            {
                _dataStruct.IdString = Logic.NormalizeBarCodeNumber(number);
            }
            return(!isExist);
        }
示例#7
0
        private void button_Click_SaveExcel(object sender, EventArgs e)
        {
            if (DataBaseLevel.GetNumberOfPersons() == 0)
            {
                MessageBox.Show(@"В Базе нет клиентов");
            }
            var personsSelected = GetUpdatedRequests();
            var table           = DataBaseM.CreatePersonsTable(personsSelected, DataBaseM.GetPersonFieldsFull);

            MyFile.ExportToExcel(table, true);
        }
示例#8
0
        /// <summary>
        /// Обработчик события вызывается когда в переменную BarCodeString записывается текст с номером.
        /// Метод Парсит текст, запускает поиск в коллекции Персон по номеру ID. Если найден - записывает Имя клиента в _nameFinded
        /// и возвращает DialogResult.Ok
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BarCodeForm_BarcodeStringChanged(object sender, EventArgs e)
        {
            var isFinded = DataBaseM.FindByPersonalNumber(DataBaseLevel.GetPersonsList(), BarCodeString, out var person);

            if (isFinded)
            {
                _nameFinded  = person.Name;
                DialogResult = DialogResult.OK;
            }
            textBox_Code.Text = "";
        }
示例#9
0
 //=========================================================================================
 public void AddRange(List <string> names, DataBaseLevel type)
 {
     if (names == null)
     {
         return;
     }
     foreach (string sName in names)
     {
         this.Add(sName, type);
     }
 }
示例#10
0
        public static void SchedulesRemoveDataBase(string time, string nameWorkout)
        {
            var manhattanInfo = DataBaseLevel.GetManhattanInfo();

            //  Проверка. Содержит ли список запись с временем
            var isExist = IsSchedExists(time, nameWorkout, manhattanInfo);
            var schl    = new ScheduleNote(new MyTime(time), nameWorkout);

            if (isExist)
            {
                manhattanInfo.Schedule.RemoveAll(x => x.GetTimeAndNameStr().Equals(schl.GetTimeAndNameStr()));
            }
        }
示例#11
0
        private bool IsNameOk(string name)
        {
            var nameToCheck = Logic.PrepareName(name);

            _dataStateOk.Name = !DataBaseLevel.ContainsNameKey(nameToCheck) && !string.IsNullOrEmpty(nameToCheck) && !string.IsNullOrWhiteSpace(nameToCheck) && nameToCheck != " ";

            if (!_dataStateOk.Name)
            {
                return(false);
            }
            _dataStruct.Name = nameToCheck;
            return(true);
        }
示例#12
0
    public static void SaveLevel(int progress)
    {
        //DataBase data = Load();
        //data.levelProgress = progress;

        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/Data0.da";
        FileStream      stream    = new FileStream(path, FileMode.Create);

        DataBaseLevel data = new DataBaseLevel(progress);

        formatter.Serialize(stream, data);
        stream.Close();
    }
示例#13
0
        private async void сохранитьВExcelToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (DataBaseLevel.GetNumberOfPersons() == 0)
            {
                MessageBox.Show(@"В Базе нет клиентов");
                return;
            }

            //Сохраним и Базу данных
            Logic.SaveEverithing();
            // Сохранение в Excel
            var table = DataBaseM.CreatePersonsTableAsync();

            MyFile.ExportToExcel(await table, true);
        }
示例#14
0
        /// <summary>
        /// Открывает карточку клиента namePerson
        /// </summary>
        /// <param name="namePerson"></param>
        public static void OpenPersonCard(string namePerson)
        {
            if (string.IsNullOrEmpty(namePerson))
            {
                return;
            }
            if (!DataBaseLevel.ContainsNameKey(namePerson))
            {
                MessageBox.Show(@"Ошибка. Неправильное имя клиента");
                return;
            }

            var presenterClientForm = new ClientFormPresenter(PersonObject.GetLink(namePerson));

            presenterClientForm.Run();
        }
示例#15
0
        public static bool SchedulesAdd2DataBase(MyTime time, ScheduleNote sch)
        {
            var manhattanInfo = DataBaseLevel.GetManhattanInfo();

            //  Проверка. Содержит ли список запись с добавляемым временем
            var isExist = IsSchedExists(time.HourMinuteTime, sch.WorkoutsName, manhattanInfo);

            if (isExist)
            {
                MessageBox.Show(@"Такая тренировка уже существует. Измените время или название!", @"Внимание",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            manhattanInfo.Schedule.Add(sch);
            return(true);
        }
示例#16
0
        /// <summary>
        /// Метод пытается изменить Имя Клиента. Если Успешно, переименовывает файл с фотографией и перезаписывает Путь до фотки
        /// </summary>
        /// <param name="curentName"></param>
        /// <param name="newName"></param>
        /// <returns></returns>
        public static bool ChangePersonName(string curentName, string newName)
        {
            if (String.IsNullOrEmpty(curentName) || String.IsNullOrEmpty(newName))
            {
                return(false);
            }

            var oldName = String.Copy(curentName);
            // Получаем обьекты для работы
            var person = PersonObject.GetLink(oldName);

            // Если текущее имя совпадает с новым
            if (person.Name == newName)
            {
                return(false);
            }
            // Пытаемся переименовать старое имя в новое
            var isSuccess = DataBaseLevel.PersonEditName(person.Name, newName);

            // Переименование коллекции с Посещениями
            if (isSuccess)
            {
                DataBaseLevel.GetPersonsVisitDict().RenameKey(oldName, PrepareName(newName));
                DataBaseLevel.GetPersonsAbonHistDict().RenameKey(oldName, PrepareName(newName));
            }

            // Переименование файлов и Пути к фотке
            if (isSuccess)
            {
                var isRenamedOk = MyFile.TryRenameFile(person.PathToPhoto, newName);
                if (isRenamedOk)
                {
                    DataBaseM.EditPathToPhoto(newName, newName);
                }
            }

            // Переименование в контроллере абонементов
            if (isSuccess)
            {
                AbonementController.GetInstance().GetPersonsDictn().RenameKey(oldName, PrepareName(newName));
            }
            //

            return(isSuccess);
        }
示例#17
0
        public CreatePersonForm()
        {
            InitializeComponent();

            _maskPhone    = maskedTextBox_PhoneNumber.Text;
            _maskPassport = maskedTextBox_Passport.Text;
            _maskDriverId = maskedTextBox_DriverID.Text;

            _persons     = DataBaseLevel.GetPersonsList();
            _dataStateOk = new PersonalDataState();
            _dataStruct  = new PersonalDataStruct();

            // Изменилось какое - либо поле данных
            PersonalDataStateEvent += PersDataStateHandler;

            // Set up the ToolTip text for the Button and Checkbox.
            toolTip1.SetToolTip(maskedTextBox_number, "Кликните мышью на этом поле и считайте номер карты Считывателем. Либо введите номер вручную.");
        }
示例#18
0
        private void сomboBox_PersonsList_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter) // Если нажат Enter
            {
                var name = сomboBox_PersonsList?.Text;
                if (string.IsNullOrEmpty(name) || string.IsNullOrWhiteSpace(name))
                {
                    return;
                }

                var perName = Logic.PrepareName(name);

                if (!FormsRunner.CheckOpened("Карточка Клиента") && DataBaseLevel.ContainsNameKey(perName))
                {
                    Logic.OpenPersonCard(perName);
                }
            }
        }
示例#19
0
    public static DataBaseLevel LoadLevel()
    {
        string path = Application.persistentDataPath + "/Data0.da";

        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);
            DataBaseLevel   data      = formatter.Deserialize(stream) as DataBaseLevel;
            stream.Close();
            return(data);
        }
        else
        {
            SaveLevel(0);
            DataBaseLevel data = new DataBaseLevel(0);
            return(data);
        }
    }
示例#20
0
        private void PersonsListForm_Load(object sender, EventArgs e)
        {
            // Инициализация всех контролов

            //ComboBox Persons
            var objects = DataBaseLevel.GetPersonsList().Values.Select(c => c.Name).ToArray <object>();

            MyComboBox.Initialize(comboBox_Names, objects);

            // Пол
            var gendRange = Enum.GetNames(typeof(Gender)).ToArray <object>();

            MyComboBox.Initialize(comboBox_Gender, gendRange, Gender.Неизвестен);

            // ListBox
            listBox_persons.Items.AddRange(objects);

            // Подписка на событие
            SelectedNameСhanged += NameProcessing;
        }
示例#21
0
        private void button_Add_New_Person_Click(object sender, EventArgs e)
        {
            if (!IsNameOk(comboBox_Names.Text) || comboBox_Names.Text.Length < 3)
            {
                ButtonAddEnable(false);
                return;
            }

            var p      = Logic.CreateNewPerson(_dataStruct);
            var result = DataBaseLevel.PersonAdd(p);

            if (result == ResponseCode.Success)
            {
                DialogResult = DialogResult.OK;
            }
            else
            {
                DataBaseM.ExplainResponse(result);
            }
        }
示例#22
0
        private async void comboBox_LastVisit_SelectedIndexChanged(object sender, EventArgs e)
        {
            var lVisit = MyComboBox.GetComboBoxValue(comboBox_LastVisit);

            // Если последний визит не важен -выходим
            if (lVisit.Equals(_lastVisits[0]))
            {
                _reqLastVisit = _personsAll.Values;
            }
            else
            {
                var dataInPast        = DateTime.Now.Subtract(new TimeSpan(30, 0, 0, 0)).Date;//Вычитаем 30 дней
                var fullJournal       = DataBaseLevel.GetPersonsVisitDict();
                var resultByCondition = fullJournal.Where(x => x.Value?.Last().DateTimeVisit.CompareTo(dataInPast) <= 0).Select(x => x.Key);
                var resultConverted   = resultByCondition.Select(PersonObject.GetLink);
                _reqLastVisit = resultConverted.ToList();
            }
            var result = await GetUpdatedRequestsAsync();

            ShowPersons(result);
        }
示例#23
0
        public static bool RemovePerson()
        {
            if (!FormsRunner.RunSelectPersonForm(out var selectedName, "УДАЛЕНИЕ КЛИЕНТА"))
            {
                return(false);
            }

            if (String.IsNullOrEmpty(selectedName))
            {
                return(false);
            }

            var res = MessageBox.Show($@"{selectedName}", @"Удалить клиента из базы???", MessageBoxButtons.YesNo,
                                      MessageBoxIcon.Question);

            if (res == DialogResult.No)
            {
                return(false);
            }

            var response = DataBaseLevel.PersonRemove(selectedName);

            if (response == ResponseCode.Success)
            {
                // Удаляем из журнала посещений данные о selectedName клиенте
                if (DataBaseLevel.GetPersonsVisitDict().ContainsKey(selectedName))
                {
                    DataBaseLevel.GetPersonsVisitDict().Remove(selectedName);
                }

                // Удаляем из журнала посещений данные о selectedName клиенте
                if (DataBaseLevel.GetPersonsAbonHistDict().ContainsKey(selectedName))
                {
                    DataBaseLevel.GetPersonsAbonHistDict().Remove(selectedName);
                }
            }

            SaveEverithing();
            return(response == ResponseCode.Success);
        }
示例#24
0
        public static void EmployeeRemoveDataBase(string name, bool isTrener)
        {
            var manhattanInfo = DataBaseLevel.GetManhattanInfo();

            //  Проверка. Содержит ли список
            var isExist = isTrener
             ? manhattanInfo.Treners.Exists(x => x.Name.Equals(name))
             : manhattanInfo.Admins.Exists(x => x.Name.Equals(name));

            if (!isExist)
            {
                return;        // нет такого имени в списке базы данных
            }
            if (isTrener)
            {
                manhattanInfo.Treners.RemoveAll(x => x.Name.Equals(name));
            }
            else
            {
                manhattanInfo.Admins.RemoveAll(x => x.Name.Equals(name));
            }
        }
示例#25
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            StartTimer(); // Инициализация Таймера для Часов

            // Подписка на события в пользовательской Базе Данных
            DataBaseLevel.PersonsListChangedEvent += UpdateFindComboBoxMenu;  // Список клиентов в окне Поиска. Автоматически,когда изменяется самая главная коллекция с клиентами.
            DataBaseLevel.PersonsListChangedEvent += SetNumberTotalPersons;   // Счетчик пользователей
            DataBaseLevel.PersonsListChangedEvent += UpdateBirthDateComboBox; // Поле Сегодняшних Дней рождений

            DataBaseLevel.OnListChanged();                                    // Событие запускающееся при изменении количества Клиентов в списке.

            // События для Колонок и  т д
            DailyVisits.NumberDailyPersonsEvent    += DailyVisits_NumberDailyPersonsEvent;   // Счетчик пользователей
            _dailyVisits.GymListChangedEvent       += DailyVisits_GymCollectionChanged;      // Тренажерка
            _dailyVisits.PersonalListChangedEvent  += DailyVisits_PersonalListChangedEvent;  // Персоналки
            _dailyVisits.AerobListChangedEvent     += DailyVisits_AerobListChangedEvent;     // Аэробный
            _dailyVisits.MiniGroupListChangedEvent += DailyVisits_MiniGroupListChangedEvent; // Минигруппы

            // Загрузка последних посещений на сегодняшнюю дату
            // Загрузка в DataBaseLevel через десериализацию.

            _dailyVisits.ShowVisits(DateTime.Now);

            // Изменение размера приводит к увеличению последней колонки до максимума
            MyListViewEx.MaximizeLastColumn(listView_Gym_Zal);
            MyListViewEx.MaximizeLastColumn(listView_Group);
            MyListViewEx.MaximizeLastColumn(listView_Personal);
            MyListViewEx.MaximizeLastColumn(listView_MiniGroup);

            // Показать окно выбора Администратора
            Logic.SelectCurentAdmin();

            // Всплывающие подсказки
            toolTip1.SetToolTip(tableLayoutPanel1, "Для удаления записы, выделите и нажмите клавишу Delete на клавиатуре");
            toolTip1.SetToolTip(monthCalendar1, "Для просмотра посещений по дням - выберите необходимую дату.");
        }
示例#26
0
 //=========================================================================================
 public static CompletionVariantList Combine(CompletionVariantList list, List <string> names, DataBaseLevel type)
 {
     if (names == null || names.Count == 0)
     {
         return(list);
     }
     if (list == null)
     {
         list = new CompletionVariantList();
     }
     list.AddRange(names, type);
     return(list);
 }
示例#27
0
 public BossForm()
 {
     InitializeComponent();
     _manhattanInfo = DataBaseLevel.GetManhattanInfo();
 }
示例#28
0
 private void SetNumberTotalPersons(EventArgs arg)
 {
     label_Total_persons.Text = DataBaseLevel.GetNumberOfPersons().ToString();
     Invalidate();
 }
示例#29
0
    private void FixedUpdate()
    {
        if (timer < 100)
        {
            if (timer < 0)
            {
                if (enemyCounter == 0)
                {
                    if (waveNumber == generator.Length - 1)
                    {
                        waveOver = true;
                    }
                    else
                    {
                        buttonStartWave.SetActive(true);
                        timer = 150;
                    }
                }
                else
                {
                    enemyCounter -= 1;
                    timer         = generator[waveNumber].creepSpownTime;
                    switch (generator[waveNumber].witchEnemy)
                    {
                    case EnemyBase.enemy.Frigate:
                        GameObject creep = Instantiate(frigate, location.transform.position, Quaternion.LookRotation(firstChekpoint.position - location.transform.position));
                        Enemy      enemy = creep.GetComponent <Enemy>();
                        enemy._chekpoint = firstChekpoint;
                        enemy.heatPoint += generator[waveNumber].bonusHeatPoints;
                        break;

                    case EnemyBase.enemy.Fighter:
                        creep            = Instantiate(fighter, location.transform.position, Quaternion.LookRotation(firstChekpoint.position - location.transform.position));
                        enemy            = creep.GetComponent <Enemy>();
                        enemy._chekpoint = firstChekpoint;
                        enemy.heatPoint += generator[waveNumber].bonusHeatPoints;
                        break;

                    case EnemyBase.enemy.Bomber:
                        creep            = Instantiate(bomber, location.transform.position, Quaternion.LookRotation(firstChekpoint.position - location.transform.position));
                        enemy            = creep.GetComponent <Enemy>();
                        enemy._chekpoint = firstChekpoint;
                        enemy.heatPoint += generator[waveNumber].bonusHeatPoints;
                        break;

                    case EnemyBase.enemy.Mothership:
                        creep            = Instantiate(mothership, location.transform.position, Quaternion.LookRotation(firstChekpoint.position - location.transform.position));
                        enemy            = creep.GetComponent <Enemy>();
                        enemy._chekpoint = firstChekpoint;
                        enemy.heatPoint += generator[waveNumber].bonusHeatPoints;
                        break;
                    }
                }
            }
            else
            {
                timer -= Time.deltaTime;
            }
        }

        if (waveOver)
        {
            if (GameObject.FindGameObjectsWithTag("Enemy").Length == 0 && !over)
            {
                over = true;
                overScreen.SetActive(true);
                GameObject.Find("OverText").GetComponent <Text>().text = "Level complete!";
                GameObject.Find("Next").GetComponent <UiEndScreenButton>().NextLevel = true;
                GameObject.Find("NextText").GetComponent <Text>().text = "Next Level";


                DataBaseLevel data = DataWork.LoadLevel();
                if (GameEngine.Engine.Level > data.levelProgress)
                {
                    DataWork.SaveLevel(GameEngine.Engine.Level);
                }
            }
        }
    }
示例#30
0
 //=========================================================================================
 public static CompletionVariantList Combine(CompletionVariantList list, string name, DataBaseLevel type)
 {
     if (string.IsNullOrEmpty(name))
     {
         return(list);
     }
     if (list == null)
     {
         list = new CompletionVariantList();
     }
     list.Add(name, type);
     return(list);
 }