private void RaisePropertyDeleteInteractionRequest(Property originalItem)
        {
            var propertySets           = InnerItem.PropertySets.Where(x => x.PropertySetProperties.Any(y => y.PropertyId == originalItem.PropertyId));
            var propertySetsNameString = string.Empty;

            propertySets.ToList().ForEach(x => propertySetsNameString += String.Format("'{0}',\r\n", x.Name));
            propertySetsNameString = !string.IsNullOrEmpty(propertySetsNameString) ? propertySetsNameString.Remove(propertySetsNameString.LastIndexOf(",")) : propertySetsNameString;
            var confirmation = new ConditionalConfirmation
            {
                Content = string.IsNullOrEmpty(propertySetsNameString) ? string.Format("Are you sure you want to delete Property '{0}'?".Localize(), originalItem.Name) : string.Format("Property '{0}' is used in \r\n{1}\r\nproperty set(s).\r\nAre you sure to delete it?".Localize(), originalItem.Name, propertySetsNameString),
                Title   = "Delete".Localize(null, LocalizationScope.DefaultCategory)
            };

            CommonConfirmRequest.Raise(confirmation, (x) =>
            {
                if (x.Confirmed)
                {
                    originalItem.PropertyValues.Clear();
                    Repository.Remove(originalItem);
                    Repository.UnitOfWork.Commit();
                    CurrentCatalogProperties.Remove(originalItem);
                    OnViewModelPropertyChangedUI(null, null);
                }
            });
        }
        protected override void InitializePropertiesForViewing()
        {
            if (AllAvailableLanguages == null)
            {
                AllAvailableLanguages = GetAvailableLanguages(InnerItem.CatalogId, _appConfigRepositoryFactory);
                OnPropertyChanged("AllAvailableLanguages");
            }

            // currently selected languages
            var InnerItemCatalogLanguageDisplays = AllAvailableLanguages.Where(x => InnerItem.CatalogLanguages.Any(y => y.Language.Equals(x.Language.Language, StringComparison.InvariantCultureIgnoreCase)));

            InnerItemCatalogLanguages = new ObservableCollection <CatalogLanguageDisplay>(InnerItemCatalogLanguageDisplays);
            OnPropertyChanged("InnerItemCatalogLanguages");

            if (!IsWizardMode)
            {
                // Initialize catalog Properties
                var allProperties = ItemRepository.Properties.ExpandAll().Where(x => x.CatalogId == InnerItem.CatalogId).ToList();
                OnUIThread(() =>
                {
                    CurrentCatalogProperties.Clear();
                    CurrentCatalogProperties.Add(allProperties);
                });

                OnPropertyChanged("CurrentCatalogProperties");
            }
        }
        private void RaisePropertyCreateInteractionRequest()
        {
            var item = EntityFactory.CreateEntity <Property>();

            if (RaisePropertyEditInteractionRequest(item, "Create property".Localize()))
            {
                item.CatalogId = InnerItem.CatalogId;
                CurrentCatalogProperties.Add(item);
                Repository.Add(item);

                OnViewModelPropertyChangedUI(null, null);
            }
        }