/// <summary>
        /// The get list make items.
        /// </summary>
        /// <param name="allItemsSelected">
        /// The all items selected.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task GetListMakeItems(ObservableCollection<AssetClassesTypeRowItem> allItemsSelected)
        {
            List<AssetClassesCategoryItemDetail> listMakeItem = await AssetClassesTypeFunctions.GetListMakeItems();

            this.ListAllAssetTypesItems = new ListDragDropViewModel(1, FeatureKey);

            this.ListAllAssetTypesItems.Key = FeatureKey;
            this.ListAllAssetTypesItems.ChangeVisibilityHeader = Visibility.Collapsed;
            this.ListAllAssetTypesItems.Items = new ObservableCollection<ItemDragDrop>();
            this.ListAllAssetTypesItems.IsConstantSource = true;
            foreach (var item in listMakeItem)
            {
                this.ListAllAssetTypesItems.Items.Add(
                    new ItemDragDrop { ID = item.ItemId, Name = item.Text, Key = FeatureKey });
            }

            this.ListAllAssetTypesItems.Items = new ObservableCollection<ItemDragDrop>(this.ListAllAssetTypesItems.Items.OrderBy(a => a.Name));

            this.ListItemsDragDrop = new GroupDragDropViewModel();
            ObservableCollection<ListDragDropViewModel> listItemsDragDropViewModel = new ObservableCollection<ListDragDropViewModel>();

            foreach (var itemSelected in allItemsSelected)
            {
                var featuresItem = new ListDragDropViewModel(itemSelected.EquipTypeId, itemSelected.TypeDescription);
                featuresItem.Key = FeatureKey;
                featuresItem.ChangeVisibilityHeader = Visibility.Collapsed;
                featuresItem.Items = new ObservableCollection<ItemDragDrop>();

                var listItemSelected = await AssetClassesTypeFunctions.GetListMakeItemsSelected(itemSelected.EquipTypeId);

                if (listItemSelected.Count > 0)
                {
                    foreach (var itemId in listItemSelected)
                    {
                        var item = listMakeItem.FirstOrDefault(x => x.ItemId == itemId);
                        if (item != null)
                        {
                            featuresItem.Items.Add(new ItemDragDrop { ID = item.ItemId, Name = item.Text, Key = FeatureKey });
                        }
                    }
                }

                listItemsDragDropViewModel.Add(featuresItem);
            }

            this.ListItemsDragDrop.GroupDragDropSource = new ObservableCollection<ListDragDropViewModel>(listItemsDragDropViewModel);
            this.ListItemsDragDrop.GroupDragDropSource = listItemsDragDropViewModel;
            this.ListItemsDragDrop.NotifyItemsChanged();
            this.ListItemsDragDrop.PropertyChanged += this.AssetCategoryAssignTypesViewModel_PropertyChanged;
        }
        /// <summary>
        /// The get list model items.
        /// </summary>
        /// <param name="allItemsSelected">
        /// The all items selected.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task GetListModelItems(ObservableCollection<AssetClassesMakeRowItem> allItemsSelected)
        {
            List<AssetClassesMakeItemDetail> listModelItem = await AssetClassesMakeFunctions.GetAllModelItems();

            this.ListAllModelItems = new ListDragDropViewModel(1, ModelKey);

            this.ListAllModelItems.Key = ModelKey;
            this.ListAllModelItems.ChangeVisibilityHeader = Visibility.Collapsed;
            this.ListAllModelItems.Items = new ObservableCollection<ItemDragDrop>();
            this.ListAllModelItems.IsConstantSource = true;

            foreach (var item in listModelItem)
            {
                this.ListAllModelItems.Items.Add(
                    new ItemDragDrop { ID = item.ItemId, Name = item.Text, Key = ModelKey });
            }

            this.ListAllModelItems.Items = new ObservableCollection<ItemDragDrop>(this.ListAllModelItems.Items.OrderBy(a => a.Name));

            this.ListItemsDragDrop = new GroupDragDropViewModel();
            ObservableCollection<ListDragDropViewModel> listItemsDragDropViewModel = new ObservableCollection<ListDragDropViewModel>();
            foreach (var itemSelected in allItemsSelected)
            {
                var modelItem = new ListDragDropViewModel(itemSelected.EquipMakeId, itemSelected.Description);
                modelItem.Key = ModelKey;
                modelItem.ChangeVisibilityHeader = Visibility.Collapsed;
                modelItem.Items = new ObservableCollection<ItemDragDrop>();

                var listItemSelected = AssetClassesMakeFunctions.GetListModelItemsSelected(itemSelected.EquipMakeId);

                if (listItemSelected.Count > 0)
                {
                    foreach (var itemId in listItemSelected)
                    {
                        var item = listModelItem.FirstOrDefault(x => x.ItemId == itemId);
                        if (item != null)
                        {
                            modelItem.Items.Add(new ItemDragDrop { ID = item.ItemId, Name = item.Text, Key = ModelKey });
                        }
                    }
                }

                listItemsDragDropViewModel.Add(modelItem);
            }

            this.ListItemsDragDrop.GroupDragDropSource = new ObservableCollection<ListDragDropViewModel>(listItemsDragDropViewModel);
            this.ListItemsDragDrop.GroupDragDropSource = listItemsDragDropViewModel;
            this.ListItemsDragDrop.NotifyItemsChanged();
        }
        /// <summary>
        /// The get list collateral items.
        /// </summary>
        /// <param name="allItemsSelected">
        /// The all items selected.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task GetListCollateralItems(ObservableCollection<AssetCollateralRowItem> allItemsSelected)
        {
            List<AssetClassesTypeItemDetail> listTypesItem;
            listTypesItem = await AssetCollateralClassesFunction.GetAllTypesItems();
            this.ListAllTypesItems = new ListDragDropViewModel(1, TypeKey);
            this.ListAllTypesItems.Key = TypeKey;
            this.ListAllTypesItems.ChangeVisibilityHeader = Visibility.Collapsed;
            this.ListAllTypesItems.Items = new ObservableCollection<ItemDragDrop>();
            this.ListAllTypesItems.IsConstantSource = true;

            foreach (var item in listTypesItem)
            {
                this.ListAllTypesItems.Items.Add(
                    new ItemDragDrop { ID = item.ItemId, Name = item.Text, Key = TypeKey });
            }

            this.ListItemsDragDrop = new GroupDragDropViewModel();
            ObservableCollection<ListDragDropViewModel> listItemsDragDropViewModel = new ObservableCollection<ListDragDropViewModel>();

            foreach (var itemSelected in allItemsSelected)
            {
                var typesItem = new ListDragDropViewModel(itemSelected.CollateralClassID, itemSelected.Description);
                typesItem.Key = TypeKey;
                typesItem.ChangeVisibilityHeader = Visibility.Collapsed;
                typesItem.Items = new ObservableCollection<ItemDragDrop>();

                var listItemSelected = await AssetCollateralClassesFunction.GetListTypesItemsSelected(itemSelected.CollateralClassID);

                if (listItemSelected.Count > 0)
                {
                    foreach (var itemId in listItemSelected)
                    {
                        var item = listTypesItem.FirstOrDefault(x => x.ItemId == itemId);
                        if (item != null)
                        {
                            typesItem.Items.Add(new ItemDragDrop { ID = item.ItemId, Name = item.Text, Key = TypeKey });
                        }
                    }
                }

                for (int i = 0; i < this.ListAllTypesItems.Items.Count; i++)
                {
                    if (listItemSelected.Contains(this.ListAllTypesItems.Items[i].ID))
                    {
                        this.ListAllTypesItems.Items[i].IsNoneDropItem = true;
                    }
                }

                for (int i = 0; i < this.ListAllTypesItems.Items.Count; i++)
                {
                    if (listItemSelected.Contains(this.ListAllTypesItems.Items[i].ID))
                    {
                        this.ListAllTypesItems.Items[i].IsNoneDropItem = true;
                    }
                }

                listItemsDragDropViewModel.Add(typesItem);
            }
            
            this.ListItemsDragDrop.GroupDragDropSource = new ObservableCollection<ListDragDropViewModel>(listItemsDragDropViewModel);
            this.ListItemsDragDrop.GroupDragDropSource = listItemsDragDropViewModel;
            foreach (var source in this.ListItemsDragDrop.GroupDragDropSource)
            {
                source.Items.CollectionChanged += this.ItemsAdd_CollectionChanged;
            }

            this.ListItemsDragDrop.NotifyItemsChanged();
            this.ListItemsDragDrop.PropertyChanged += this.AssetCollateralAssignTypeViewModel_PropertyChanged;
        }