public DataView CreateDataView(string name, string contentSelectionCriterion, string containerSelectionCriterion, Dataset dataset)
{
Contract.Requires(!string.IsNullOrWhiteSpace(name));
Contract.Requires(!string.IsNullOrWhiteSpace(contentSelectionCriterion) || !string.IsNullOrWhiteSpace(containerSelectionCriterion));
Contract.Requires(dataset != null);
Contract.Ensures(Contract.Result<DataView>() != null);
DataView e = new DataView()
{
Name = name,
ContentSelectionCriterion = contentSelectionCriterion,
ContainerSelectionCriterion = containerSelectionCriterion,
Dataset = dataset,
};
e.Dataset.Views.Add(e);
using (IUnitOfWork uow = this.GetUnitOfWork())
{
IRepository<DataView> repo = uow.GetRepository<DataView>();
repo.Put(e);
uow.Commit();
}
return (e);
}