|
@@ -11,21 +11,21 @@
|
|
|
"breed": "Дворняжка",
|
|
"breed": "Дворняжка",
|
|
|
"color": "Белый",
|
|
"color": "Белый",
|
|
|
"name": "Ириска",
|
|
"name": "Ириска",
|
|
|
- "dateOfLastVaccination": null
|
|
|
|
|
|
|
+ "dateOfVaccination": null
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
"age": 2,
|
|
"age": 2,
|
|
|
"breed": "Шотландская вислоухая",
|
|
"breed": "Шотландская вислоухая",
|
|
|
"color": "Коричневый",
|
|
"color": "Коричневый",
|
|
|
"name": "Изи",
|
|
"name": "Изи",
|
|
|
- "dateOfLastVaccination": "2020-01-31"
|
|
|
|
|
|
|
+ "dateOfVaccination": "2020-01-31"
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
"age": 3,
|
|
"age": 3,
|
|
|
"breed": "Сиамский",
|
|
"breed": "Сиамский",
|
|
|
"color": "Цветной",
|
|
"color": "Цветной",
|
|
|
"name": "Макс",
|
|
"name": "Макс",
|
|
|
- "dateOfLastVaccination": "2022-05-10"
|
|
|
|
|
|
|
+ "dateOfVaccination": "2022-05-10"
|
|
|
},
|
|
},
|
|
|
]
|
|
]
|
|
|
```
|
|
```
|
|
@@ -78,7 +78,7 @@
|
|
|
}
|
|
}
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
- И реализуем класс JSONDataProvider:
|
|
|
|
|
|
|
+ И реализуем класс **JSONDataProvider**:
|
|
|
|
|
|
|
|
```cs
|
|
```cs
|
|
|
public class JSONDataProvider
|
|
public class JSONDataProvider
|
|
@@ -105,29 +105,34 @@
|
|
|
|
|
|
|
|
# ЗАДАНИЕ
|
|
# ЗАДАНИЕ
|
|
|
|
|
|
|
|
-1. Подготовить набор данных (не менее 10 записей) с разными типами (обязательно должны быть: Int, Double, String, DateTime, Boolean)
|
|
|
|
|
|
|
+1. Подготовить набор данных (не менее 10 записей) с разными типами (обязательно должны быть: **Int**, **Double**, **String**, **DateTime**, **Boolean**)
|
|
|
|
|
|
|
|
-1. Реализовать класс JSONDataProvider для своей предметной области
|
|
|
|
|
|
|
+1. Реализовать класс **JSONDataProvider** для своей предметной области
|
|
|
|
|
|
|
|
1. Поле с датой добавить в таблицу и указать формат вывода: `Binding="{Binding dateOfLastVaccination,StringFormat='dd.MM.yyyy'}"`
|
|
1. Поле с датой добавить в таблицу и указать формат вывода: `Binding="{Binding dateOfLastVaccination,StringFormat='dd.MM.yyyy'}"`
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
->Если вдруг нам приспичит делать десериализацию используя компонент **Newtonsoft.Json**, то для обхода проблемы со строковой датой можно реализовать класс-наследник **CatWithStringDates**, в котором перегрузить поле *dateOfLastVaccination*:
|
|
|
|
|
|
|
+>Если вдруг нам приспичит делать десериализацию используя компонент **Newtonsoft.Json**, то для обхода проблемы со строковой датой можно реализовать класс-наследник **CatWithStringDates**, в котором перегрузить поле *dateOfVaccination*:
|
|
|
|
|
+>
|
|
|
>```cs
|
|
>```cs
|
|
|
>public class CatWithStringDates: Cat
|
|
>public class CatWithStringDates: Cat
|
|
|
>{
|
|
>{
|
|
|
> public string dateOfLastVaccination { get; set; }
|
|
> public string dateOfLastVaccination { get; set; }
|
|
|
>}
|
|
>}
|
|
|
>```
|
|
>```
|
|
|
|
|
+>
|
|
|
>И при десериализации использовать этот класс:
|
|
>И при десериализации использовать этот класс:
|
|
|
|
|
+>
|
|
|
>```cs
|
|
>```cs
|
|
|
>var catList = JsonConvert.DeserializeObject<CatWithStringDates[]>("[{\"age\": 1, \"dateOfLastVaccination\": \"2020-01-01\"}]");
|
|
>var catList = JsonConvert.DeserializeObject<CatWithStringDates[]>("[{\"age\": 1, \"dateOfLastVaccination\": \"2020-01-01\"}]");
|
|
|
>```
|
|
>```
|
|
|
|
|
+>
|
|
|
>Затем, используя LINQ запрос преобразовать к нужному типу:
|
|
>Затем, используя LINQ запрос преобразовать к нужному типу:
|
|
|
|
|
+>
|
|
|
>```cs
|
|
>```cs
|
|
|
>_catList = catList.Select(cat => new Cat {
|
|
>_catList = catList.Select(cat => new Cat {
|
|
|
> age = cat.age,
|
|
> age = cat.age,
|
|
|
-> dateOfLastVaccination = DateTime.Parse(cat.dateOfLastVaccination)
|
|
|
|
|
|
|
+> dateOfVaccination = DateTime.Parse(cat.dateOfVaccination)
|
|
|
>}).ToList();
|
|
>}).ToList();
|
|
|
->```
|
|
|
|
|
|
|
+>```
|