public async Task <bool> AddRange(List <Stock> entities)
 {
     try
     {
         foreach (var item in entities)
         {
             var last_stock = stockRepository.GetAll(_ => _.ProductId.Equals(item.ProductId)).AsEnumerable().GroupBy(x => x.ProductId).Select(t => new Stock
             {
                 ProductId   = t.FirstOrDefault().ProductId,
                 in_qty      = t.Sum(x => x.in_qty),
                 out_qty     = t.Sum(x => x.out_qty),
                 balance_qty = t.Sum(x => x.in_qty) - t.Sum(x => x.out_qty)
             }).FirstOrDefault();
             decimal bl_qty = 0;
             if (last_stock != null)
             {
                 bl_qty = last_stock.balance_qty;
             }
             item.balance_qty = bl_qty + item.in_qty - item.out_qty;
             item.CreatedAt   = DateTime.Now;
             item.Id          = Guid.NewGuid();
         }
         return(await stockRepository.AddMany(entities));
     }
     catch (Exception ex)
     {
         throw;
     }
 }