/// <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); }
/// <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); }
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); }
// 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); }