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/>
2025-02-06 12:39:40 +05:00
public DataSchemeDto(Guid discriminatorId, IEnumerable<SchemePropertyDto> Properties)
2025-02-05 17:20:18 +05:00
{
DiscriminatorId = discriminatorId;
this.Properties = Properties;
}
/// <inheritdoc/>
public IEnumerator<SchemePropertyDto> GetEnumerator()
=> Properties.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator()
=> GetEnumerator();
/// <inheritdoc/>
public bool Equals(IEnumerable<SchemePropertyDto>? otherProperties)
{
2025-02-06 12:39:40 +05:00
if (otherProperties is null)
return false;
2025-02-05 17:20:18 +05:00
return Properties.SequenceEqual(otherProperties);
}
}