public void VisitFacility(BusinessEntityData data) { if (data.Type == (int)Helper.BusinessEntityType.Storage) { return; } throw new BusinessEntityValidationException("You can add only Storage to Facility"); }
public void VisitCompany(BusinessEntityData data) { if (data.Type == (int)Helper.BusinessEntityType.Facility) { return; } throw new BusinessEntityValidationException("You can add only Facility to Companies"); }
public void VisitCorporation(BusinessEntityData data) { if (data.Type == (int)Helper.BusinessEntityType.Corporation) { return; } if (data.Type == (int)Helper.BusinessEntityType.Company) { return; } throw new BusinessEntityValidationException("You can add only Companies to Corporation"); }
public void AddBusinessEntity(IBusinessEntity entity) { var currentElement = Context.BusinessEntityList.FirstOrDefault(x => x.Number == this.Number); var visitor = new ValidationVisitor(); var data = new BusinessEntityData() { ID = Guid.NewGuid(), Title = entity.Title, Number = entity.Number, Type = entity.Type, ParentID = currentElement == null ? Guid.Empty : currentElement.ID }; Validate(visitor, data); Context.BusinessEntityList.Add(data); }
public abstract void Validate(IValidationVisitor visitor, BusinessEntityData data);
public override void Validate(IValidationVisitor visitor, BusinessEntityData data) { visitor.VisitCompany(data); }
public void VisitStorage(BusinessEntityData data) { throw new BusinessEntityValidationException("You can't add any business entity to Storage"); }