Example #1
0
        /// <summary>
        /// Получаем заголовки из Обьекта класса Пользователя. Нужно для экспорта в эксель
        /// На вход подается функция создающая поля поля и заголовки
        /// </summary>
        /// <returns></returns>
        private static DataColumn[] GetHeaders(Func <Person, IEnumerable <PersonField> > getFieldsFunc)
        {
            // Создаем массив с полями и заголовками будущей таблицы по текущему посещению
            var persons = DataBaseLevel.GetPersonsList();
            var p       = persons.Select(x => x).FirstOrDefault(x => (x.Value.AbonementCurent != null));
            IEnumerable <PersonField> personFields;

            // Это условие нужно на тот случай если в списке нет клиентов с абонементами
            if (p.Key == null || p.Value == null)
            {
                var tempPerson = new Person("temp")
                {
                    AbonementCurent = new SingleVisit(TypeWorkout.Аэробный_Зал, SpaService.Без_Спа, Pay.Не_Оплачено,
                                                      TimeForTr.Утро)
                };
                personFields = getFieldsFunc(tempPerson);
            }
            else
            {
                personFields = getFieldsFunc(p.Value);
            }

            var headerNames = personFields.Select(x => x.HeaderName).ToArray();
            var dcol        = new DataColumn[headerNames.Length];

            for (var i = 0; i < headerNames.Length; i++)
            {
                dcol[i] = new DataColumn(headerNames[i]);
            }

            return(dcol);
        }
Example #2
0
        /// <summary>
        /// Возвращает DataTable со Всеми клиентами в Базе. Нужна для экспорта в Excel,а так же для создания отчетов
        /// </summary>
        /// <returns></returns>
        public static DataTable CreatePersonsTable()
        {
            var persons = DataBaseLevel.GetPersonsList().Select(x => x.Value);
            var dt      = CreatePersonsTable(persons, GetPersonFieldsFull);

            return(dt);
        }
Example #3
0
        public static void SaveAbonementToHistory(Person person, AbonementBasic abon)
        {
            if (abon == null)
            {
                return;
            }

            var currentAdmin = (DataBaseLevel.GetManhattanInfo()?.CurrentAdmin) ?? new Administrator();

            var lengAbonOrClCa = string.Empty;

            if (abon is AbonementByDays byDays)
            {
                lengAbonOrClCa = byDays.GetTypeAbonementByDays().ToString().Replace("На_", "").Replace("_", " ");
            }
            else if (abon is ClubCardA clubCardA)
            {
                lengAbonOrClCa = clubCardA.PeriodAbonem.ToString().Replace("На_", "");
            }
            else if (abon is SingleVisit singleVisit)
            {
                lengAbonOrClCa = "";
            }


            var abonHistory = new AbonHistory()
            {
                AbonementName        = abon.AbonementName,
                AdminName            = currentAdmin.Name,
                TypeWorkout          = abon.TypeWorkout.ToString(),
                Time                 = abon.TimeTraining.ToString(),
                SpaStatus            = abon.Spa.ToString(),
                EndDate              = abon.EndDate.ToShortDateString(),
                ActivationDate       = abon.BuyActivationDate.ToShortDateString(),
                LengthAbonOrClubCard = lengAbonOrClCa,
                NumAerobn            = (abon is AbonementByDays days && days.TypeWorkout == TypeWorkout.Аэробный_Зал) ? days.GetRemainderDays().ToString() : abon.NumAerobicTr.ToString(),
                NumMini              = (abon is AbonementByDays daysM && daysM.TypeWorkout == TypeWorkout.МиниГруппа) ? daysM.GetRemainderDays().ToString() : abon.NumMiniGroup.ToString(),
                NumPerson            = (abon is AbonementByDays daysP && daysP.TypeWorkout == TypeWorkout.Персональная) ? daysP.GetRemainderDays().ToString() : abon.NumPersonalTr.ToString(),
                BuyDate              = abon.BuyDate.ToShortDateString()
            };

            // Список всех абонементов для всех клиентов
            var personsAbonHistDict = DataBaseLevel.GetPersonsAbonHistDict();

            if (personsAbonHistDict.ContainsKey(person.Name))
            {
                personsAbonHistDict[person.Name].Add(abonHistory);
            }
            else
            {
                personsAbonHistDict.Add(person.Name, new List <AbonHistory> {
                    abonHistory
                });
            }
        }

        #endregion
    }
Example #4
0
        // Path To Photo
        public static void EditPathToPhoto(string personName, string newFileNameNoExtens)
        {
            var oldPathToPhoto = PersonObject.GetLink(personName)?.PathToPhoto;

            if (oldPathToPhoto == null)
            {
                return;
            }
            var fileInfo    = new FileInfo(oldPathToPhoto);
            var newFilePath = fileInfo.DirectoryName + "\\" + newFileNameNoExtens + fileInfo.Extension;

            if (personName != null && DataBaseLevel.ContainsNameKey(personName))
            {
                PersonObject.GetLink(personName).PathToPhoto = newFilePath;
            }
        }
Example #5
0
        /// <summary>
        /// Сохраняет текущий визит. Перегрузка для работы с Диспетчером абонементов
        /// Добавляет в Журнал посещений параметры выбранной Тренировки, Текущего администратора, время тренировки.
        /// Статический метод, на вход нужно подать Персону.
        /// </summary>
        /// <param name="person"></param>
        /// <param name="abonement">Абонемент для сохранения</param>
        /// <param name="selectedOptions"></param>
        public static void SaveCurentVisit(Person person, AbonementBasic abonement, WorkoutOptions selectedOptions)
        {
            var currentAdmin     = (DataBaseLevel.GetManhattanInfo()?.CurrentAdmin) ?? new Administrator();
            var visit            = new Visit(abonement, selectedOptions, currentAdmin.Name);
            var personsVisitDict = DataBaseLevel.GetPersonsVisitDict();

            if (personsVisitDict.ContainsKey(person.Name))
            {
                personsVisitDict[person.Name].Add(visit);
            }
            else
            {
                personsVisitDict.Add(person.Name, new List <Visit> {
                    visit
                });
            }
        }
Example #6
0
        public static bool EditPersonalNumber(string namePerson, string newNumber)
        {
            var isExist = FindByPersonalNumber(DataBaseLevel.GetPersonsList(), newNumber, out _);

            if (isExist)
            {
                MessageBox.Show($@"Такой номер уже назначен клиенту: 

 {namePerson}", @"Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }
            else if (string.IsNullOrEmpty(newNumber))
            {
                // MessageBox.Show($@"Личный номер удалён", @"Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                PersonObject.GetLink(namePerson).IdString = string.Empty;
                return(false);
            }
            PersonObject.GetLink(namePerson).IdString = newNumber;
            return(true);
        }
Example #7
0
        public static List <Visit> GetVisitsList(string name)
        {
            var dictVisits = DataBaseLevel.GetPersonsVisitDict();

            return(!dictVisits.ContainsKey(name) ? null : dictVisits[name]);
        }
Example #8
0
        // private static readonly DataBaseLevel DataBase = DataBaseLevel.GetInstance();

        public static Person GetLink(string name)
        {
            var isOk = DataBaseLevel.GetPersonsList().TryGetValue(name, out _person);

            return(isOk ? _person : null);
        }
Example #9
0
        /// <summary>
        /// Возвращает коллекцию с старыми абонементами клиента. Если их нет - вернет нулл.
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static List <AbonHistory> GetAbonHistoryList(string name)
        {
            var dictHistory = DataBaseLevel.GetPersonsAbonHistDict();

            return(!dictHistory.ContainsKey(name) ? null : dictHistory[name]);
        }
Example #10
0
 public static DataBaseLevel GetInstance()
 {
     return(_dbInstance ?? (_dbInstance = new DataBaseLevel()));
 }