public coreModel.Property Create(coreModel.Property property) { if (property.CatalogId == null) { throw new NullReferenceException("property.CatalogId"); } var dbProperty = property.ToDataModel(); using (var repository = _catalogRepositoryFactory()) { if (property.CategoryId != null) { var dbCategory = repository.GetCategoryById(property.CategoryId); repository.SetCategoryProperty(dbCategory, dbProperty); } else { var dbCatalog = repository.GetCatalogById(property.CatalogId) as dataModel.Catalog; if (dbCatalog == null) { throw new OperationCanceledException("Add property only to catalog"); } repository.SetCatalogProperty(dbCatalog, dbProperty); } repository.Add(dbProperty); CommitChanges(repository); } var retVal = GetById(dbProperty.Id); return(retVal); }
public coreModel.Property Create(coreModel.Property property) { if (property.CatalogId == null) { throw new NullReferenceException("property.CatalogId"); } var dbProperty = property.ToDataModel(); using (var repository = base.CatalogRepositoryFactory()) { if (property.CategoryId != null) { var dbCategory = repository.GetCategoriesByIds(new[] { property.CategoryId }, coreModel.CategoryResponseGroup.Info).FirstOrDefault(); if (dbCategory == null) { throw new NullReferenceException("dbCategory"); } dbCategory.Properties.Add(dbProperty); } else { var dbCatalog = repository.GetCatalogsByIds(new[] { property.CatalogId }).FirstOrDefault(); if (dbCatalog == null) { throw new NullReferenceException("dbCatalog"); } dbCatalog.Properties.Add(dbProperty); } repository.Add(dbProperty); CommitChanges(repository); } var retVal = GetById(dbProperty.Id); return(retVal); }