示例#1
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);
        }
示例#2
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);
        }
示例#3
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);
        }
示例#4
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);
        }