Ejemplo n.º 1
0
        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);
            }