persistence/DD.Persistence.Models/DataSchemeDto.cs

43 lines
1.1 KiB
C#
Raw Normal View History

2025-02-05 17:20:18 +05:00
using System.Collections;
namespace DD.Persistence.Models;
/// <summary>
/// Схема для набора данных
/// </summary>
2025-02-05 17:20:18 +05:00
public class DataSchemeDto : IEnumerable<SchemePropertyDto>, IEquatable<IEnumerable<SchemePropertyDto>>
{
/// <summary>
/// Дискриминатор
/// </summary>
public Guid DiscriminatorId { get; set; }
/// <summary>
2025-02-05 17:20:18 +05:00
/// Поля
/// </summary>
2025-02-05 17:20:18 +05:00
private IEnumerable<SchemePropertyDto> Properties { get; } = [];
2025-02-05 17:20:18 +05:00
/// <inheritdoc/>
public DataSchemeDto(Guid discriminatorId, 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);
}
}