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