public CartOwner Update(CartOwner entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (!entity.Validate()) { throw new ValidationException(entity.ValidationResults); } CartOwner uptadedEntity = repository.Update(entity); Tracer.Log.EntityUpdated(nameof(CartOwner), entity.CartOwnerId); return(uptadedEntity ?? entity); }
public CartOwner Create(CartOwner entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } if (!entity.Validate()) { throw new ValidationException(entity.ValidationResults); } CartOwner cartOwner = GetCartUser(entity.CartId, entity.UserId); if (cartOwner != null) { if (cartOwner.AccessLevel == entity.AccessLevel) { return(cartOwner); } else { cartOwner.UpdateAccessLevel(entity.AccessLevel); Update(cartOwner); return(cartOwner); } } CartOwner createdEntity = repository.Create(entity); if (createdEntity == null) { throw new RepositoryException("Entity not created"); } Tracer.Log.EntityCreated(nameof(CartOwner), createdEntity.CartId); return(createdEntity); }