void ExecuteBulkInsert(List <MaestroProduct> plist)
        {
            UnitTypeManager um = new UnitTypeManager(context);
            MaestroUnitType unknownUnitType = um.GetUnknownItem();

            List <MaestroProduct> updatedProducts = new List <MaestroProduct>();

            foreach (MaestroProduct product in plist)
            {
                MaestroProduct existing = ProductCache.Instance.GetByQbId(product.QuickBooksProductId);
                if (existing != null)
                {
                    product.Id           = existing.Id;
                    product.UnitType     = existing.UnitType;
                    product.ProductGroup = existing.ProductGroup;
                    pm.Update(product);
                    updatedProducts.Add(existing);
                }
                else
                {
                    product.UnitType = unknownUnitType;
                }
            }

            List <ITransactionEntity> clist = plist.Where(q => !updatedProducts.Select(u => u.QuickBooksProductId).Contains(q.QuickBooksProductId)).Cast <ITransactionEntity>().ToList();

            if (clist.Count > 0)
            {
                pm.BulkInsert(clist);
            }

            if (updatedProducts.Count > 0)
            {
                updatedProducts.ForEach(p => pm.Update(p));
            }

            if (clist.Count > 0 || updatedProducts.Count > 0)
            {
                ProductCache.Instance.Reload(true);
            }
        }
Beispiel #2
0
        public MaestroUnitType GetUnknownItem()
        {
            MaestroUnitType unitType = UnitTypeCache.Instance.GetByName(MaestroApplication.Instance.UNKNOWN_ITEM_NAME);

            if (unitType == null)
            {
                unitType = new MaestroUnitType()
                {
                    Name         = MaestroApplication.Instance.UNKNOWN_ITEM_NAME,
                    CanHaveUnits = false,
                    Description  = string.Empty,
                    CreateDate   = DateTime.Now,
                    UpdateDate   = DateTime.Now,
                    CreatedUser  = "******",
                    UpdatedUser  = "******",
                    RecordStatus = "A"
                };
                InsertNewItem(unitType);
            }

            return(unitType);
        }