/// <summary> /// Создает DataTable обьект содержащий все посещения пользователя. /// </summary> /// <returns></returns> public static DataTable GetVisitsTable(Person person) { var table = new DataTable(); var journal = PersonObject.GetVisitsList(person.Name); var journalVisits = journal ?? new List <Visit>(); if (journalVisits.Count == 0) { table.Columns.Add(" "); table.Rows.Add(" "); return(table); } // Создаем Заголовки таблицы, берем из первого элемента Visit var headers = journalVisits.First().GetHeadersForValues(); table.Columns.AddRange(headers); // Заполняем строки значениями из журнала foreach (var item in journalVisits.Reverse <Visit>()) { table.Rows.Add(item.GetValues()); } return(table); }
// 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; } }
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); }
/// <summary> /// Только тут создаются заголовки Выборочных полей и записываются их данные в структуру PersonField /// </summary> /// <param name="first"></param> /// <returns></returns> public static IEnumerable <PersonField> GetPersonFieldsShort(Person first) { var person = first; // Главные поля, всегда отображаются var personFields = new List <PersonField> { new PersonField { HeaderName = "Имя", Value = person.Name }, new PersonField { HeaderName = "Телефон", Value = person.Phone }, // new PersonField {HeaderName = "Статус", Value = person.Status.ToString()}, }; // Все что касается Абонемента var instAbonContr = AbonementController.GetInstance(); var lastAbonement = instAbonContr.GetFirstValid(person.Name) ?? instAbonContr.GetList(person.Name).LastOrDefault(); if (lastAbonement == null) { return(personFields); } personFields.Add(new PersonField { HeaderName = "Название", Value = lastAbonement.AbonementName }); personFields.Add(new PersonField { HeaderName = "Покупка", Value = $"{lastAbonement.BuyActivationDate:dd/MM/yyyy}" }); personFields.Add(new PersonField { HeaderName = "Конец", Value = $"{lastAbonement.EndDate:dd/MM/yyyy}" }); // Последнее посещение в журнале var journal = PersonObject.GetVisitsList(person.Name); if (journal?.Count > 0) { var lastVisit = journal.Last().DateTimeVisit.Date; //.ToString("MM/dd/yyyy"); var numDays = (DateTime.Now - lastVisit).Days; personFields.Add(new PersonField { HeaderName = "Посл.Визит", Value = lastVisit.ToString("MM/dd/yyyy") }); personFields.Add(numDays == 0 ? new PersonField { HeaderName = "Был (дн. назад)", Value = $"Сегодня" } : new PersonField { HeaderName = "Был (дн. назад)", Value = $" {numDays}" }); } else { personFields.Add(new PersonField { HeaderName = "Был(дн. назад)", Value = $"" }); } return(personFields); }
/// <summary> /// Только тут создаются заголовки всех полей и записываются основные данные /// </summary> /// <param name="first"></param> /// <returns></returns> public static IEnumerable <PersonField> GetPersonFieldsFull(Person first) { var person = first; var instAbonContr = AbonementController.GetInstance(); var abonHistoriesOld = PersonObject.GetAbonHistoryList(person.Name); var abonListAll = instAbonContr.GetList(person.Name); var abonValid = instAbonContr.GetFirstValid(person.Name); // Создается текстовый список всех абонементов. var abonHistString = new StringBuilder(); foreach (var item in abonListAll) { abonHistString.AppendLine(item?.AbonementName + $"({item?.BuyDate.Date}), "); } if (abonHistoriesOld != null) { foreach (var item in abonHistoriesOld) { abonHistString.Append(item?.AbonementName + $"({item?.BuyDate}), "); } } // Для выдергивания не форматированного текста в заметки. RichTextBox tempSpecialNotesRtb = new RichTextBox(); MyRichTextBox.Load(tempSpecialNotesRtb, person.SpecialNotes); var abon = abonValid ?? abonListAll?.LastOrDefault(); var isAbonExist = abon != null; var personFields = new List <PersonField> { new PersonField { HeaderName = "Имя", Value = person.Name }, new PersonField { HeaderName = "Телефон", Value = person.Phone }, new PersonField { HeaderName = "Дата Рождения", Value = $"{person.BirthDate.Date:MM/dd/yyyy}" }, new PersonField { HeaderName = "Пол", Value = person.GenderType.ToString() }, new PersonField { HeaderName = "Статус", Value = person.Status.ToString() }, new PersonField { HeaderName = "ID номер", Value = person.IdString }, new PersonField { HeaderName = "Паспорт", Value = person.Passport }, new PersonField { HeaderName = "Права", Value = person.DriverIdNum }, // Абонемент new PersonField { HeaderName = "Название", Value = (isAbonExist) ?abon.AbonementName: "" }, new PersonField { HeaderName = "Доступное время", Value = (isAbonExist) ?abon.TimeTraining.ToString():"" }, new PersonField { HeaderName = "Осталось дней", Value = (isAbonExist) ?abon.GetRemainderDays().ToString():"" }, new PersonField { HeaderName = "Аэробных", Value = (isAbonExist) ?abon.NumAerobicTr.ToString():"" }, new PersonField { HeaderName = "Персональных", Value = (isAbonExist) ?abon.NumPersonalTr.ToString():"" }, new PersonField { HeaderName = "Мини Групп", Value = (isAbonExist) ?abon.NumMiniGroup.ToString():"" }, new PersonField { HeaderName = "Спа услуги", Value = (isAbonExist) ?abon.Spa.ToString():"" }, new PersonField { HeaderName = "Доступный тип", Value = (isAbonExist) ?abon.TypeWorkout.ToString():"" }, new PersonField { HeaderName = "Оплата", Value = (isAbonExist) ?abon.PayStatus.ToString():"" }, new PersonField { HeaderName = "Абон. Покупка", Value = (isAbonExist) ? $"{abon.BuyDate:MM/dd/yyyy}" :"" }, new PersonField { HeaderName = "Абон. Активация", Value = (isAbonExist) ? $"{abon.BuyActivationDate:MM/dd/yyyy}" :"" }, new PersonField { HeaderName = "Абон. Конец", Value = (isAbonExist) ? $"{abon.EndDate:MM/dd/yyyy}":"" }, new PersonField { HeaderName = "Активация", Value = (isAbonExist) ?abon.IsActivated.ToString():"" }, new PersonField { HeaderName = "Заметки", Value = tempSpecialNotesRtb.Text }, new PersonField { HeaderName = "Заморозки", Value = GetFreezeString(person) }, new PersonField { HeaderName = "История Абон.", Value = abonHistString.ToString() } }; return(personFields); }