Преобразование телефонных номеров в аннотации данных - PullRequest
0 голосов
/ 22 февраля 2012

Я хочу изящно преобразовать номер телефона , введенный моими пользователями, в определенный формат номера телефона.

  • Я хотел бы преобразовать это с dataAnnotation , так же, как [dataType(dataType.Date)] отображает dateTime как string

Т.е.:

  • 0205938472 в + 61205938472
  • 02 0593 8472 в + 61205938472
  • 0593 8472 в +61205938472 (я приму код города, из которого они живут, или если егомобильный телефон)
  • 02-0593-8472 в + 61205938472

и т. д. Я также хочу преобразовать другое направление:

  • + 61205938472 в 020593 8472 (или любой другой формат, который я выберу)

Я хочу сделать это, чтобы повысить удобочитаемость для пользователя, но сохранить строгий тип данных в базе данных.

Вопросы

  1. Является ли использование аннотации данных подобным образом плохой практикой?
  2. Как мне на самом деле написать аннотацию данных (/ Однако вы бы это сделали)?
    (пожалуйста, включите некоторый код)

    Редактировать: чтобы уточнить, я не хочу, чтобы кто-то написал расширение для меня, я быпросто как пример ключевых частей кода и реализации.

Обратите внимание

  • Это номера в Австралии, Новой Зеландии и в международном формате, которые хранятся в виде номеров в международном формате.
  • ИМеждународные форматированные номера, конвертируемые в Австралию, Новую Зеландию или международные форматированные в зависимости от местоположения пользователя (которое я могу определить)

Ответы [ 3 ]

3 голосов
/ 22 февраля 2012

В зависимости от используемого пользовательского интерфейса вы можете сделать это с помощью:

Поскольку синтаксический анализ и форматирование обычно выполняются на уровне пользовательского интерфейса, я сомневаюсь, что вы найдете решение, которое работает на уровне данных / модели и которое будет работать универсально или которое может сделать больше, чем просто проверка.

Вв пространстве имен аннотаций данных есть DataType.PhoneNumber , который вы можете прикрепить к своим свойствам.Хотя вы сами несете ответственность за выполнение анализа и форматирования с использованием соответствующей технологии отображения.

0 голосов
/ 22 февраля 2012

Вы можете использовать DataTypeAttribute следующим образом:

[DataType(DataType.PhoneNumber)]
public string PhoneNumber{get; set;}
0 голосов
/ 22 февраля 2012
  1. Аннотации данных и тип данных используются для проверки, а не для преобразования значений.Тип данных в основном используется, чтобы валидация знала, с чего начать угадывание.

2.Это требует слишком много для того, чтобы кто-то закодировал такое расширение, особенно без каких-либо усилий.

...