public PartyRelationshipType Create(string title, string description, bool indicatesHierarchy, int maxCardinality,
int minCardinality, PartyType partyTypePairAlowedSource, PartyType partyTypePairAlowedTarget,
string partyTypePairTitle, string partyTypePairDescription)
{
Contract.Requires(!string.IsNullOrWhiteSpace(title) && !string.IsNullOrWhiteSpace(partyTypePairTitle));
Contract.Requires(partyTypePairAlowedSource != null && partyTypePairAlowedSource.Id > 0);
Contract.Requires(partyTypePairAlowedTarget != null && partyTypePairAlowedTarget.Id > 0);
Contract.Ensures((Contract.Result<PartyRelationshipType>() != null && Contract.Result<PartyRelationshipType>().Id >= 0)
&& (Contract.Result<PartyTypePair>() != null && Contract.Result<PartyTypePair>().Id >= 0));
PartyRelationshipType entity = new PartyRelationshipType()
{
Description = description,
IndicatesHierarchy = indicatesHierarchy,
MaxCardinality = maxCardinality,
MinCardinality = minCardinality,
Title = title
};
var partyTypeEntity = new PartyTypePair()
{
AlowedSource = partyTypePairAlowedSource,
AlowedTarget = partyTypePairAlowedTarget,
Description = partyTypePairDescription,
PartyRelationshipType = entity,
Title = partyTypePairTitle
};
using (IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<PartyRelationshipType> repo = uow.GetRepository<PartyRelationshipType>();
IRepository<PartyTypePair> repoPTP = uow.GetRepository<PartyTypePair>();
repo.Put(entity);
repoPTP.Put(partyTypeEntity);
uow.Commit();
}
return (entity);
}