Skip to content

Commit

Permalink
Исправление кодировки файла
Browse files Browse the repository at this point in the history
  • Loading branch information
vlastroG committed Nov 19, 2024
1 parent eaf816d commit 0044896
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions src/RevitClashes/Models/RevitParamConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

namespace RevitClashDetective.Models {
/// <summary>
/// Êëàññ äëÿ êîððåêòèðîâêè ñåðèàëèçàöèè/äåñåðèàëèçàöèè òèïà <see cref="SystemParam"/> äëÿ êîððåêòèðîâêè ñâîéñòâà <see cref="SystemParam.StorageType"/>
/// Класс для корректировки сериализации/десериализации типа <see cref="SystemParam"/> для корректировки свойства <see cref="SystemParam.StorageType"/>
/// </summary>
internal class RevitParamConverter : JsonConverter {
private readonly Document _document;
Expand All @@ -23,10 +23,10 @@ internal class RevitParamConverter : JsonConverter {
private readonly ProjectParamsConfig _projectParamsConfig = ProjectParamsConfig.Instance;

/// <summary>
/// Êîíñòðóêòîð êîíâåðòåðà òèïà <see cref="SystemParam"/> äëÿ êîððåêòèðîâêè íàçíà÷åíèÿ ñâîéñòâà <see cref="SystemParam.StorageType"/>
/// Конструктор конвертера типа <see cref="SystemParam"/> для корректировки назначения свойства <see cref="SystemParam.StorageType"/>
/// </summary>
/// <param name="document">Äîêóìåíò, â êîòîðîì çàïóùåíà êîíâåðòàöèÿ</param>
/// <exception cref="ArgumentNullException">Èñêëþ÷åíèå, åñëè âõîäíîé ïàðàìåòð - ïóñòàÿ ññûëêà</exception>
/// <param name="document">Документ, в котором запущена конвертация</param>
/// <exception cref="ArgumentNullException">Исключение, если входной параметр - пустая ссылка</exception>
public RevitParamConverter(Document document) {
if(document is null) { throw new ArgumentNullException(nameof(document)); }

Expand All @@ -40,11 +40,11 @@ public override bool CanConvert(Type objectType) {
}

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {
throw new NotImplementedException("Êîíâåðòåð ïîääåðæèâàåò òîëüêî ReadJson ìåòîä");
throw new NotImplementedException("Конвертер поддерживает только ReadJson метод");
}

// ñâîéñòâî reader.Value âîçâðàùàåò òåêóùåå çíà÷åíèå òîêåíà JSON
// ìåòîä reader.Read() ÷èòàåò ïåðåäâèãàåòñÿ íà 1 òîêåí ê êîíöó JSON ôàéëà
// свойство reader.Value возвращает текущее значение токена JSON
// метод reader.Read() читает передвигается на 1 токен к концу JSON файла
// https://stackoverflow.com/questions/23017716/json-net-how-to-deserialize-without-using-the-default-constructor
// https://stackoverflow.com/questions/20995865/deserializing-json-to-abstract-class
// https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/converters-how-to?pivots=dotnet-6-0#sample-factory-pattern-converter
Expand All @@ -54,42 +54,42 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
JObject jobj = JObject.Load(reader);
string typeName = jobj["$type"].Value<string>()?.Split(',').FirstOrDefault();
if(string.IsNullOrWhiteSpace(typeName)) {
throw new JsonSerializationException($"Íå óäàëîñü ïîëó÷èòü íàçâàíèå òèïà ïàðàìåòðà");
throw new JsonSerializationException($"Не удалось получить название типа параметра");
}

if(typeName.Equals(typeof(SystemParam).FullName)) {

string id = jobj["Id"].Value<string>();
if(string.IsNullOrWhiteSpace(id)) { throw new JsonSerializationException($"Íå óäàëîñü ïîëó÷èòü ñâîéñòâî {nameof(RevitParam.Id)}"); }
if(string.IsNullOrWhiteSpace(id)) { throw new JsonSerializationException($"Не удалось получить свойство {nameof(RevitParam.Id)}"); }
BuiltInParameter builtInParameter = (BuiltInParameter) Enum.Parse(typeof(BuiltInParameter), id);
SystemParam systemParam = _systemParamsConfig.CreateRevitParam(_document, builtInParameter);
return systemParam;

} else if(typeName.Equals(typeof(SharedParam).FullName)) {

string name = jobj["Name"].Value<string>();
if(string.IsNullOrWhiteSpace(name)) { throw new JsonSerializationException($"Íå óäàëîñü ïîëó÷èòü ñâîéñòâî {nameof(RevitParam.Name)}"); }
if(string.IsNullOrWhiteSpace(name)) { throw new JsonSerializationException($"Не удалось получить свойство {nameof(RevitParam.Name)}"); }
try {
return _sharedParamsConfig.CreateRevitParam(_document, name);
} catch(ArgumentNullException) {
throw new JsonSerializationException($"Â äîêóìåíòå \'{_document.PathName}\' îòñóòñòâóåò îáùèé ïàðàìåòð \'{name}\'");
throw new JsonSerializationException($"В документе \'{_document.PathName}\' отсутствует общий параметр \'{name}\'");
}

} else if(typeName.Equals(typeof(ProjectParam).FullName)) {

string name = jobj["Name"].Value<string>();
if(string.IsNullOrWhiteSpace(name)) { throw new JsonSerializationException($"Íå óäàëîñü ïîëó÷èòü ñâîéñòâî {nameof(RevitParam.Name)}"); }
if(string.IsNullOrWhiteSpace(name)) { throw new JsonSerializationException($"Не удалось получить свойство {nameof(RevitParam.Name)}"); }
try {
return _projectParamsConfig.CreateRevitParam(_document, name);
} catch(ArgumentNullException) {
throw new JsonSerializationException($"Â äîêóìåíòå \'{_document.PathName}\' îòñóòñòâóåò ïàðàìåòð ïðîåêòà \'{name}\'");
throw new JsonSerializationException($"В документе \'{_document.PathName}\' отсутствует параметр проекта \'{name}\'");
}

} else if(typeName.Equals(typeof(CustomParam).FullName)) {

return jobj.ToObject<CustomParam>();

} else { throw new JsonSerializationException($"Íå ïîääåðæèâàåìîå íàçâàíèå òèïà ïàðàìåòðà: {typeName}"); }
} else { throw new JsonSerializationException($"Не поддерживаемое название типа параметра: {typeName}"); }
}
}
}
}

0 comments on commit 0044896

Please sign in to comment.