Правки по результатам ревью
This commit is contained in:
parent
2dca1cc722
commit
1e2fa287a0
@ -13,6 +13,7 @@ public class SetpointMappingClient : ISetpointMappingClient
|
|||||||
private readonly ISetpointClient setpointClient;
|
private readonly ISetpointClient setpointClient;
|
||||||
private readonly MappingConfig mappingConfigs;
|
private readonly MappingConfig mappingConfigs;
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
public SetpointMappingClient(ISetpointClient setpointClient, MappingConfig mappingConfigs)
|
public SetpointMappingClient(ISetpointClient setpointClient, MappingConfig mappingConfigs)
|
||||||
{
|
{
|
||||||
this.setpointClient = setpointClient;
|
this.setpointClient = setpointClient;
|
||||||
@ -62,11 +63,11 @@ public class SetpointMappingClient : ISetpointMappingClient
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public async Task<IEnumerable<SetpointLogDto>> GetPart(DateTimeOffset dateBegin, int take, CancellationToken token)
|
public async Task<IEnumerable<SetpointLogDto>> GetPart(DateTimeOffset dateBegin, int take, CancellationToken token)
|
||||||
{
|
{
|
||||||
var res = await setpointClient.GetPart(dateBegin, take, token);
|
var result = await setpointClient.GetPart(dateBegin, take, token);
|
||||||
|
|
||||||
DeserializeList(res);
|
DeserializeList(result);
|
||||||
|
|
||||||
return res;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
@ -81,6 +82,7 @@ public class SetpointMappingClient : ISetpointMappingClient
|
|||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
setpointClient.Dispose();
|
setpointClient.Dispose();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private object DeserializeValue(Guid key, JsonElement value)
|
private object DeserializeValue(Guid key, JsonElement value)
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
using DD.Persistence.Client.Clients.Mapping.Abstractions;
|
using DD.Persistence.Client.Clients.Mapping.Abstractions;
|
||||||
using DD.Persistence.Models;
|
using DD.Persistence.Models;
|
||||||
using DD.Persistence.Models.Common;
|
using DD.Persistence.Models.Common;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace DD.Persistence.Client.Clients.Mapping.Clients;
|
namespace DD.Persistence.Client.Clients.Mapping.Clients;
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using DD.Persistence.Client.Clients.Mapping.Abstractions;
|
using DD.Persistence.Client.Clients.Mapping.Abstractions;
|
||||||
using DD.Persistence.Models.Configurations;
|
using DD.Persistence.Models.Configurations;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
|
|
||||||
@ -8,22 +9,25 @@ internal class MapperStorage : IMapperStorage
|
|||||||
{
|
{
|
||||||
private readonly ConcurrentDictionary<Guid, TimestampedSetMapper> mapperCache = new();
|
private readonly ConcurrentDictionary<Guid, TimestampedSetMapper> mapperCache = new();
|
||||||
private readonly MappingConfig mappingConfigs;
|
private readonly MappingConfig mappingConfigs;
|
||||||
public MapperStorage(MappingConfig mappingConfigs)
|
private readonly ILogger<TimestampedSetMapper> logger;
|
||||||
|
|
||||||
|
public MapperStorage(MappingConfig mappingConfigs, ILogger<TimestampedSetMapper> logger)
|
||||||
{
|
{
|
||||||
this.mappingConfigs = mappingConfigs;
|
this.mappingConfigs = mappingConfigs;
|
||||||
|
this.logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public TimestampedSetMapper? GetMapper(Guid idDiscriminator)
|
public TimestampedSetMapper? GetMapper(Guid idDiscriminator)
|
||||||
{
|
{
|
||||||
if(mappingConfigs.TryGetValue(idDiscriminator, out var type))
|
if (mappingConfigs.TryGetValue(idDiscriminator, out var type))
|
||||||
return mapperCache.GetOrAdd(idDiscriminator, name => new TimestampedSetMapper(idDiscriminator, type));
|
return mapperCache.GetOrAdd(idDiscriminator, name => new TimestampedSetMapper(idDiscriminator, type, logger));
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TimestampedSetMapper GetMapper<T>(Guid idDiscriminator)
|
public TimestampedSetMapper GetMapper<T>(Guid idDiscriminator)
|
||||||
{
|
{
|
||||||
return mapperCache.GetOrAdd(idDiscriminator, name => new TimestampedSetMapper(idDiscriminator, typeof(T)));
|
return mapperCache.GetOrAdd(idDiscriminator, name => new TimestampedSetMapper(idDiscriminator, typeof(T), logger));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using DD.Persistence.Models;
|
using DD.Persistence.Models;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
@ -9,13 +10,16 @@ namespace DD.Persistence.Client.Clients.Mapping;
|
|||||||
internal class TimestampedSetMapper
|
internal class TimestampedSetMapper
|
||||||
{
|
{
|
||||||
private readonly Type entityType;
|
private readonly Type entityType;
|
||||||
|
private readonly ILogger<TimestampedSetMapper> logger;
|
||||||
|
|
||||||
public Guid IdDiscriminator { get; }
|
public Guid IdDiscriminator { get; }
|
||||||
private readonly ConcurrentDictionary<string, PropertyInfo?> PropertyCache = new();
|
private readonly ConcurrentDictionary<string, PropertyInfo?> PropertyCache = new();
|
||||||
|
|
||||||
public TimestampedSetMapper(Guid idDiscriminator, Type entityType)
|
public TimestampedSetMapper(Guid idDiscriminator, Type entityType, ILogger<TimestampedSetMapper> logger)
|
||||||
{
|
{
|
||||||
IdDiscriminator = idDiscriminator;
|
IdDiscriminator = idDiscriminator;
|
||||||
this.entityType = entityType;
|
this.entityType = entityType;
|
||||||
|
this.logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public object DeserializeTimeStampedData(TimestampedValuesDto data)
|
public object DeserializeTimeStampedData(TimestampedValuesDto data)
|
||||||
@ -66,7 +70,10 @@ internal class TimestampedSetMapper
|
|||||||
var value = element.Deserialize(property.PropertyType);
|
var value = element.Deserialize(property.PropertyType);
|
||||||
property.SetValue(entity, value);
|
property.SetValue(entity, value);
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.LogError(ex.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
private void SetPropertyValueForStruct(ref object entity, string propertyName, object value)
|
private void SetPropertyValueForStruct(ref object entity, string propertyName, object value)
|
||||||
{
|
{
|
||||||
@ -79,7 +86,10 @@ internal class TimestampedSetMapper
|
|||||||
var convertedValue = Convert.ChangeType(value, property.PropertyType);
|
var convertedValue = Convert.ChangeType(value, property.PropertyType);
|
||||||
property.SetValue(entity, convertedValue);
|
property.SetValue(entity, convertedValue);
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.LogError(ex.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -95,7 +105,10 @@ internal class TimestampedSetMapper
|
|||||||
var value = jsonElement.Deserialize(property.PropertyType);
|
var value = jsonElement.Deserialize(property.PropertyType);
|
||||||
property.SetValue(entity, value);
|
property.SetValue(entity, value);
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.LogError(ex.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetPropertyValue(ref object entity, string propertyName, object value)
|
private void SetPropertyValue(ref object entity, string propertyName, object value)
|
||||||
@ -109,7 +122,10 @@ internal class TimestampedSetMapper
|
|||||||
var convertedValue = Convert.ChangeType(value, property.PropertyType);
|
var convertedValue = Convert.ChangeType(value, property.PropertyType);
|
||||||
property.SetValue(entity, convertedValue);
|
property.SetValue(entity, convertedValue);
|
||||||
}
|
}
|
||||||
catch (Exception) { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
logger.LogError(ex.Message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private PropertyInfo? GetPropertyInfo(string propertyName)
|
private PropertyInfo? GetPropertyInfo(string propertyName)
|
||||||
|
@ -3,6 +3,7 @@ using DD.Persistence.Client.Clients.Mapping;
|
|||||||
using DD.Persistence.Client.Clients.Mapping.Clients;
|
using DD.Persistence.Client.Clients.Mapping.Clients;
|
||||||
using DD.Persistence.Models;
|
using DD.Persistence.Models;
|
||||||
using DD.Persistence.Models.Configurations;
|
using DD.Persistence.Models.Configurations;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using NSubstitute;
|
using NSubstitute;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
|
||||||
@ -15,6 +16,7 @@ public record SecondTestDto(Guid DiscriminatorId, DateTimeOffset Timestamp, int
|
|||||||
public class MappingClientsTest
|
public class MappingClientsTest
|
||||||
{
|
{
|
||||||
private readonly ITimestampedValuesClient timestampedValuesClient = Substitute.For<ITimestampedValuesClient>();
|
private readonly ITimestampedValuesClient timestampedValuesClient = Substitute.For<ITimestampedValuesClient>();
|
||||||
|
private readonly ILogger<TimestampedSetMapper> logger = Substitute.For<ILogger<TimestampedSetMapper>>();
|
||||||
private readonly TimestampedMappingClient timestampedMappingClient;
|
private readonly TimestampedMappingClient timestampedMappingClient;
|
||||||
|
|
||||||
private readonly MappingConfig mappingConfigs;
|
private readonly MappingConfig mappingConfigs;
|
||||||
@ -23,7 +25,7 @@ public class MappingClientsTest
|
|||||||
public MappingClientsTest()
|
public MappingClientsTest()
|
||||||
{
|
{
|
||||||
mappingConfigs = GetConfig();
|
mappingConfigs = GetConfig();
|
||||||
var storage = new MapperStorage(mappingConfigs);
|
var storage = new MapperStorage(mappingConfigs, logger);
|
||||||
|
|
||||||
timestampedMappingClient = new TimestampedMappingClient(timestampedValuesClient, storage);
|
timestampedMappingClient = new TimestampedMappingClient(timestampedValuesClient, storage);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user