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