Как описать свойства в модели C# MVC

184
15 февраля 2018, 12:32

Добрый день! Подскажите, как должны выглядеть свойства модели, если есть следующее представлением клиента (JSON только как пример):

{
  "Customer": {
    "Name": "Petr Petrovich",
    "Addresses": [
      {
        "Type": "VISITING",
        "Street": {
          "Street1": "Street 12-12",
          "Street2": "(P.O. Box 190)"
        },
        "PostalCode": "100000",
        "Town": "Bobruisk"
      }
    ],
    "Phone": [
      {
        "Type": "WORK",
        "Value": "+7555 555 555"
      },
      {
        "Type": "MOBILE",
        "Value": "+3 999"
      }
    ],
    "Email": [
      {
        "Type": "WORK",
        "Value": "admin@bobruisk.com"
      }
    ],
    "Notes": "Cool customer."
  }
}

Я это описал следующим способом:

namespace CustomerApplication.Models
{
    using System.ComponentModel;
    public class Customer
    {
        public int Id { get; set; }
        [DisplayName("Имя")]
        public string Name { get; set; }
        [DisplayName("Адрес 1")]
        public string Street1 { get; set; }
        [DisplayName("Адрес 2")]
        public string Street2 { get; set; }
        [DisplayName("Почтовый индекс")]
        public string PostalCode { get; set; }
        [DisplayName("Город")]
        public string Town { get; set; }
        [DisplayName("Рабочий телефон")]
        public int WorkPhone { get; set; }
        [DisplayName("Мобильный телефон")]
        public int MobilePhone { get; set; }
        [DisplayName("E-mail")]
        public string Email { get; set; }
        [DisplayName("Заметка")]
        public string Notes { get; set; }
        [DisplayName("Активность аккаунта")]
        public bool Active { get; set; }
    }
}

Меня смущают некие "type", как их отобразить и нужны ли они вообще? Планируется обычная учётка клиентов (добавление, поиск, редактирование, удаление, сортировка).

Answer 1

Все несколько веселее выглядит на самом деле - там сложный объект содержащий в себе другие объекты (аннотации сами проставьте):

  public class Street
    {
        public string Street1 { get; set; }
        public string Street2 { get; set; }
    }
    public class Address
    {
        public string Type { get; set; }
        public Street Street { get; set; }
        public string PostalCode { get; set; }
        public string Town { get; set; }
    }
    public class Phone
    {
        public string Type { get; set; }
        public string Value { get; set; }
    }
    public class Email
    {
        public string Type { get; set; }
        public string Value { get; set; }
    }
    public class Customer
    {
        public string Name { get; set; }
        public IList<Address> Addresses { get; set; }
        public IList<Phone> Phone { get; set; }
        public IList<Email> Email { get; set; }
        public string Notes { get; set; }
    }

Генерировал тут

READ ALSO
Пауза во время цикла c# [дубликат]

Пауза во время цикла c# [дубликат]

На данный вопрос уже ответили:

222
Разный typeof в chrome

Разный typeof в chrome

Использую библиотеку amchartsВ chrome в режиме инкогнито код console

274
Разработка алгоритма, обнаруживающего в массиве все пары целых чисел, сумма которых равна заданному значению

Разработка алгоритма, обнаруживающего в массиве все пары целых чисел, сумма которых равна заданному значению

Напишите программу (на языке JavaScript), которая найдет в массиве все пары целых чисел, сумма которых равна заданному значению

254