Exemple #1
0
        public async Task <BudgetItem> CopyBudgetItemWithChildrenItemsToShipownerAsync(int itemId, int shipownerId)
        {
            BudgetItem sourceItem = await _BudgetItemReadService.GetByIdAsync(itemId);

            _BudgetItemCUDService.Context.TurnOffAutoDetectChangesAndValidateOnSave();
            var propertyManager = new BaseLib.Services.TPropertyManager <BudgetItem>();

            propertyManager.DefineAllSimplePropertieForManage();
            BudgetItem copyItem = CreateCopyBudgetItemWithChildrenItemsToShipownerAndAddInSet(propertyManager, sourceItem, shipownerId, null);
            int        count    = await _BudgetItemCUDService.Context.SaveChangesAsync();

            _BudgetItemCUDService.Context.TurnOnAutoDetectChangesAndValidateOnSave();
            return((count > 0) ? copyItem : null);
        }
Exemple #2
0
        private BudgetItem CreateCopyBudgetItemWithChildrenItemsToShipownerAndAddInSet(BaseLib.Services.TPropertyManager <BudgetItem> propertyManager, BudgetItem sourceItem, int shipownerId, BudgetItem parentItem)
        {
            BudgetItem itemCopy = new BudgetItem();

            propertyManager.CopyProperties(sourceItem, itemCopy, true);
            itemCopy.SetShipOwner(shipownerId);
            itemCopy.SetParentItem(parentItem);
            System.Threading.Thread.Sleep(2000);
            _BudgetItemCUDService.TEntitySet.Add(itemCopy);

            IEnumerable <BudgetItem> childrenItems = _BudgetItemReadService.GetCollection(new BudgetItemsByParentSpecification(sourceItem.Id));

            foreach (var item in childrenItems)
            {
                BudgetItem copyChild = CreateCopyBudgetItemWithChildrenItemsToShipownerAndAddInSet(propertyManager, item, shipownerId, itemCopy);
                itemCopy.InsertChildrenItem(copyChild);
            }
            return(itemCopy);
        }