[#1] Add object mappers

Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
This commit is contained in:
Ivan Pchelintsev 2024-05-16 12:26:32 +03:00
parent 0d83541d82
commit 6b8f8cbd4c
7 changed files with 76 additions and 46 deletions

View file

@ -4,15 +4,35 @@ using FrostFS.SDK.ModelsV2;
namespace FrostFS.SDK.ClientV2.Mappers.GRPC;
public static class ObjectHeadMapper
{
public static ObjectHead ToModel(this Header head)
{
public static Header ToGrpcMessage(this ObjectHeader header)
{
// var obtype = Enum.Parse<ObjectType>(head.ObjectType.ToString());
return new ObjectHead
var objTypeName = Enum.GetName(typeof(ObjectType), header.ObjectType);
if (objTypeName is null)
{
ContainerId = ContainerId.FromHash(head.ContainerId.Value.ToByteArray()),
Size = (long)head.PayloadLength,
Version = head.Version.ToModel()
throw new ArgumentException($"Unknown ObjectType. Value: '{header.ObjectType}'.");
}
return new Header
{
ContainerId = header.ContainerId.ToGrpcMessage(),
ObjectType = Enum.Parse<ObjectType>(objTypeName)
};
}
}
public static ObjectHeader ToModel(this Header header)
{
var objTypeName = Enum.GetName(typeof(ModelsV2.Enums.ObjectType), header.ObjectType);
if (objTypeName is null)
{
throw new ArgumentException($"Unknown ObjectType. Value: '{header.ObjectType}'.");
}
return new ObjectHeader(
ContainerId.FromHash(header.ContainerId.Value.ToByteArray()),
Enum.Parse<ModelsV2.Enums.ObjectType>(objTypeName)
)
{
Size = (long)header.PayloadLength,
Version = header.Version.ToModel()
};
}
}