1.0.5 • Published 1 year ago
repo-spec v1.0.5
Repository and Specification
Repository Methods
The Repostitory ...
Service Methods
- In
add
for adding one item - In
update
for update one item
Full Example:
import Product from "./models/product";
import ProductQueryFactory from "./services/factories/product.query.factory";
import ProductRepositoryFactory from "./services/factories/product.repository.factory";
import ProductByMaxPriceSpec from "./services/productData/querySpecs/product.by.max.price.spec";
import ProductByMinPriceSpec from "./services/productData/querySpecs/product.by.min.price.spec";
import ProviderEnum from "./services/shared/provider.enum";
let repository = ProductRepositoryFactory.create(ProviderEnum.Local);
let query = ProductQueryFactory.create(ProviderEnum.Local);
localStorage.clear();
//? Id Generation Strategy (Identity, Guid, HiLo, Custom)
repository.AddProduct(new Product(1, "p1", 100));
repository.AddProduct(new Product(2, "p2", 200));
repository.AddProduct(new Product(3, "p3", 300));
repository.AddProduct(new Product(4, "p4", 400));
const result1 = repository.GetProductById(2);
// console.log(result1);
//? mr.bardal@gmail.com
// let result2 = query.GetProductsByMinPrice(200);
// console.log(result2);
let result3 = query.GetProductsByPrice(200, 300);
console.log(result3);
// const byMinSpec = new ProductByMinPriceSpec(300);
// let r1 = byMinSpec.isSatisfiedBy(result1);
// const byMaxSpec = new ProductByMaxPriceSpec(100);
// let r2 = byMaxSpec.isSatisfiedBy(result1);
// console.log(r2);