コード例 #1
0
        public IList <Product> SearchByText(string text)
        {
            string query = string.Format(
                @"select p.id Id,p.price Price,pc.name classifier_name from Product p 
inner join Classifier pc on pc.id = p.classifier_id
where
exists(select ps.product_id from productonstore ps where ps.product_id = p.id and ps.amount > 1) and 
exists(select id from Classifier c where 
            ( c.Name like '%{0}%' or (exists(select * from BarCode b where b.classifier_id=c.id and b.code = '{0}') )
       ) and p.classifier_id = c.id)",
                text);

            return(DbORM.GetEntities <Product>(this.GetDbConnection(), query, (product, column, value) =>
            {
                if ("classifier_name".Equals(column.ToLower()))
                {
                    product.Classifier = product.Classifier ?? new Classifier()
                    {
                        Name = value as string
                    };
                }
            },
                                               (typeDst, src) =>
                                               typeDst.Equals(typeof(decimal)) && (src is long || src is int)
                  ? ((long)src) / 10000m
                  : src
                                               ));
        }
コード例 #2
0
 public override Classifier Find(int id)
 {
     return
         (DbORM.GetEntities <Classifier>(this.GetDbConnection(),
                                         string.Format(@"select * from Classifier where Id={0}", id)
                                         ).FirstOrDefault());
 }
コード例 #3
0
 public decimal GetAmountOnStore(Product product)
 {
     return
         (DbORM.GetEntities <Product>(
              this.GetDbConnection(),
              string.Format(@"select sum(amount) Price from productonstore where product_id = {0}", product.Id)
              )
          .Select <Product, decimal>(p => p.Price).FirstOrDefault());
 }
コード例 #4
0
 public void SaveSale(IEnumerable <ISaleItem> saleItems, Document document)
 {
     //TODO Сделать запись чека в БД
     DbORM.PutEntities <SaleDb>(
         saleItems.Aggregate(new List <SaleDb>(), (p, c) =>
     {
         p.Add(new SaleDb()
         {
             ProductId  = c.Id,
             Amount     = (long)c.Amount * 10000,
             DocumentId = document.Id
         });
         return(p);
     }), this.GetDbConnection(),
         "insert saleofproduct (product_id,amount,document_id) values ({product_id}, {amount}, {document_id})",
         (typeDst, src) =>
         typeDst.Equals(typeof(decimal)) && (src is long || src is int)
            ? ((long)src) / 10000m
            : src
         );
 }
コード例 #5
0
 public override Defectura Find(int id)
 {
     return
         (DbORM.GetEntities <Defectura>(_dbConnection).FirstOrDefault());
 }
コード例 #6
0
 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
 {
     return(DbORM.GetEntities <T>(this.GetDbConnection()).AsEnumerable().GetEnumerator());
 }
コード例 #7
0
 public IEnumerator <T> GetEnumerator()
 {
     return(DbORM.GetEntities <T>(this.GetDbConnection()).AsEnumerable().GetEnumerator());
 }
コード例 #8
0
 public void Remove(T entity)
 {
     DbORM.PutEntities <T>(new T[] { entity }, this.GetDbConnection()).FirstOrDefault();
 }
コード例 #9
0
 public T Add(T entity)
 {
     return(DbORM.PutEntities <T>(new T[] { entity }, this.GetDbConnection()).FirstOrDefault());
 }
コード例 #10
0
 public virtual T Find(int id)
 {
     return(DbORM.GetEntities <T>(this.GetDbConnection()).FirstOrDefault());
 }
コード例 #11
0
 public override Sale Find(int id)
 {
     return
         (DbORM.GetEntities <Sale>(this.GetDbConnection()).FirstOrDefault());
 }
コード例 #12
0
 public override Product Find(int id)
 {
     return
         (DbORM.GetEntities <Product>(this.GetDbConnection()).FirstOrDefault());
 }
コード例 #13
0
 public override BarCode Find(int id)
 {
     return
         (DbORM.GetEntities <BarCode>(_dbConnection).FirstOrDefault());
 }