private IEnumerable <Entity> GetEntities(IEntityPresenter item) { if (LinkGuid == Guid.Empty) { yield return(item?.Entity); } else { EntityTypeLink link = item.Entity?.Type.Links.Find(LinkGuid); if (link == null) { yield break; } if (link.Link.Type.IsToOne()) { yield return(item.Entity.GetLink <Entity>(LinkGuid)); } else { foreach (LinkEntity linkedEntity in item.Entity.GetLinks(LinkGuid)) { yield return(linkedEntity.SecondEntity); } } } }
public bool Validate(Entity entity, out string errorText) { EntityTypeLink link = entity.Type.Links.Find(_linkGuid); if (link != null && link.Link.Type.IsToOne() ? entity.GetLink(link.Link.Guid) == null : entity.GetLinks(link.Link.Guid).Count == 0) { errorText = "Не заполнена связь " + link.Link.Name; return(false); } errorText = null; return(true); }