100 lines
No EOL
2.3 KiB
C#
100 lines
No EOL
2.3 KiB
C#
using System;
|
|
using System.Linq;
|
|
|
|
using FrostFS.Netmap;
|
|
|
|
namespace FrostFS.SDK.Client;
|
|
|
|
public static class PolicyMapper
|
|
{
|
|
public static Replica ToMessage(this FrostFsReplica replica)
|
|
{
|
|
return new Replica
|
|
{
|
|
Count = (uint)replica.Count,
|
|
Selector = replica.Selector
|
|
};
|
|
}
|
|
|
|
public static FrostFsReplica ToModel(this Replica replica)
|
|
{
|
|
if (replica is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(replica));
|
|
}
|
|
|
|
return new FrostFsReplica((int)replica.Count, replica.Selector);
|
|
}
|
|
|
|
public static Selector ToMessage(this FrostFsSelector selector)
|
|
{
|
|
if (selector is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(selector));
|
|
}
|
|
|
|
return new Selector
|
|
{
|
|
Name = selector.Name,
|
|
Count = selector.Count,
|
|
Clause = (Clause)selector.Clause,
|
|
Attribute = selector.Attribute,
|
|
Filter = selector.Filter
|
|
};
|
|
}
|
|
|
|
public static FrostFsSelector ToModel(this Selector selector)
|
|
{
|
|
if (selector is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(selector));
|
|
}
|
|
|
|
var model = new FrostFsSelector(selector.Name)
|
|
{
|
|
Count = selector.Count,
|
|
Clause = (int)selector.Clause,
|
|
Attribute = selector.Attribute,
|
|
Filter = selector.Filter
|
|
};
|
|
|
|
return model;
|
|
}
|
|
|
|
public static Filter ToMessage(this FrostFsFilter filter)
|
|
{
|
|
if (filter is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(filter));
|
|
}
|
|
|
|
var message = new Filter
|
|
{
|
|
Name = filter.Name,
|
|
Key = filter.Key,
|
|
Op = (Operation)filter.Operation,
|
|
Value = filter.Value,
|
|
};
|
|
|
|
message.Filters.AddRange(filter.Filters.Select(f => f.ToMessage()));
|
|
|
|
return message;
|
|
}
|
|
|
|
public static FrostFsFilter ToModel(this Filter filter)
|
|
{
|
|
if (filter is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(filter));
|
|
}
|
|
|
|
var model = new FrostFsFilter(
|
|
filter.Name,
|
|
filter.Key,
|
|
(int)filter.Op,
|
|
filter.Value,
|
|
[.. filter.Filters.Select(f => f.ToModel())]);
|
|
|
|
return model;
|
|
}
|
|
} |