コード例 #1
0
ファイル: Visit.cs プロジェクト: litvinovsan/MannhattanRepo
        /// <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);
        }
コード例 #2
0
        /// <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);
        }