43 lines
1.1 KiB
C#
43 lines
1.1 KiB
C#
using System.Collections;
|
|
|
|
namespace DD.Persistence.Models;
|
|
|
|
/// <summary>
|
|
/// Схема для набора данных
|
|
/// </summary>
|
|
public class DataSchemeDto : IEnumerable<SchemePropertyDto>, IEquatable<IEnumerable<SchemePropertyDto>>
|
|
{
|
|
/// <summary>
|
|
/// Дискриминатор
|
|
/// </summary>
|
|
public Guid DiscriminatorId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Поля
|
|
/// </summary>
|
|
private IEnumerable<SchemePropertyDto> Properties { get; } = [];
|
|
|
|
/// <inheritdoc/>
|
|
public DataSchemeDto(Guid discriminatorId, IEnumerable<SchemePropertyDto> Properties)
|
|
{
|
|
DiscriminatorId = discriminatorId;
|
|
this.Properties = Properties;
|
|
}
|
|
|
|
/// <inheritdoc/>
|
|
public IEnumerator<SchemePropertyDto> GetEnumerator()
|
|
=> Properties.GetEnumerator();
|
|
|
|
IEnumerator IEnumerable.GetEnumerator()
|
|
=> GetEnumerator();
|
|
|
|
/// <inheritdoc/>
|
|
public bool Equals(IEnumerable<SchemePropertyDto>? otherProperties)
|
|
{
|
|
if (otherProperties is null)
|
|
return false;
|
|
|
|
return Properties.SequenceEqual(otherProperties);
|
|
}
|
|
}
|