< Summary

Information
Class: Services.ApiServices.FavoritPartsApi.FavoritPartsGuid
Assembly: Services
File(s): /home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/FavoritPartsApi/FavoritPartsGuid.cs
Line coverage
100%
Covered lines: 1
Uncovered lines: 0
Coverable lines: 1
Total lines: 25
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Format(...)100%11100%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/AppRepository/ApiServices/FavoritPartsApi/FavoritPartsGuid.cs

#LineLine coverage
 1using Newtonsoft.Json;
 2
 3namespace Services.ApiServices.FavoritPartsApi;
 4
 5/// <summary>
 6/// FavoritParts сравнивает идентификаторы как строки и принимает их только в верхнем регистре:
 7/// cart/add с warehouseGroup в нижнем регистре отвечает HTTP 500 «Что-то пошло не так»
 8/// (проверено на боевом API), хотя тот же запрос с верхним регистром проходит. Guid.ToString()
 9/// в .NET даёт нижний регистр, поэтому каждый идентификатор, уходящий в запрос, гоняем через Format.
 10/// </summary>
 11public static class FavoritPartsGuid
 12{
 4913    public static string Format(Guid value) => value.ToString("D").ToUpperInvariant();
 14}
 15
 16/// <summary>Пишет Guid в JSON тела POST order/ в верхнем регистре — см. <see cref="FavoritPartsGuid"/>.</summary>
 17public sealed class FavoritPartsGuidJsonConverter : JsonConverter<Guid>
 18{
 19    public override void WriteJson(JsonWriter writer, Guid value, JsonSerializer serializer) =>
 20        writer.WriteValue(FavoritPartsGuid.Format(value));
 21
 22    public override Guid ReadJson(JsonReader reader, Type objectType, Guid existingValue, bool hasExistingValue,
 23        JsonSerializer serializer) =>
 24        reader.Value is null ? Guid.Empty : Guid.Parse(reader.Value.ToString()!);
 25}

Methods/Properties

Format(System.Guid)