Ejemplo n.º 1
0
 /// <summary>
 /// Added if Create...ViewModel has ISupportWizardSave
 /// </summary>
 /// <param name="confirmation"></param>
 /// <param name="parameter">additional parameter to pass to AfterItemAddSaved</param>
 protected void ItemAdd(Confirmation confirmation, object parameter = null)
 {
     CommonWizardDialogRequest.Raise(confirmation, async(x) =>
     {
         if (x.Confirmed)
         {
             OnUIThread(() => ShowLoadingAnimation = true);
             try
             {
                 var vm = (x.Content as ISupportWizardSave);
                 if (vm != null)
                 {
                     await Task.Run(() => vm.PrepareAndSave());                             //todo check show animation for all task process
                     AfterItemAddSaved(parameter);
                 }
             }
             catch (Exception ex)
             {
                 ShowErrorDialog(ex, string.Format("An error occurred when trying to save".Localize(null, LocalizationScope.DefaultCategory)));
             }
             finally
             {
                 OnUIThread(() => ShowLoadingAnimation = false);
             }
         }
     });
 }
        protected override void RaiseItemAddInteractionRequest()
        {
            var item   = new Account();
            var itemVM = _wizardVmFactory.GetViewModelInstance(new KeyValuePair <string, object>("item", item));

            CommonWizardDialogRequest.Raise(new ConditionalConfirmation {
                Title = "Create account".Localize(), Content = itemVM
            }, (x) =>
            {
                if (x.Confirmed)
                {
                    // always create SiteAdministrator in here. Simple users are created in Customers (Cases) module
                    // create via MemberShip without roles
                    _securityService.CreateAdminUser(item.MemberId, item.UserName, itemVM.Password);

                    //Add roles
                    using (var itemRepository = _securityRepository.GetRepositoryInstance())
                    {
                        var originalItem = itemRepository.Accounts.Where(a => a.UserName == item.UserName).Expand("RoleAssignments/Role").SingleOrDefault();
                        if (originalItem != null)
                        {
                            //TODO this property MemberId must be set in service while creating user
                            originalItem.MemberId = originalItem.AccountId.ToString();

                            foreach (var roleAssignments in item.RoleAssignments)
                            {
                                originalItem.RoleAssignments.Add(roleAssignments);
                            }
                            itemRepository.UnitOfWork.Commit();
                        }
                    }
                    Refresh();
                }
            });
        }
Ejemplo n.º 3
0
        private void RaiseCreateDynamicContentItemInteractionRequest()
        {
            var item = CreateEntity <DynamicContentItem>();

            item.ContentTypeId = DynamicContentType.CategoryWithImage.ToString();

            var itemVM = _wizardVmFactory.GetViewModelInstance(
                new KeyValuePair <string, object>("item", item));

            CommonWizardDialogRequest.Raise(new ConditionalConfirmation
            {
                Title   = "Create dynamic content item".Localize(),
                Content = itemVM
            }, (x) =>
            {
                if (x.Confirmed)
                {
                    using (var repository = _dynamicContentRepository.GetRepositoryInstance())
                    {
                        repository.Add(item);
                        repository.UnitOfWork.Commit();
                    }

                    SelectedDynamicContentItems.Refresh();
                }
            });
        }
        // This method will delete soon
        /// <summary>
        /// Base method to append Item.
        /// Rises given confirmation dialog and store given Item to DB after edit.
        /// Appends edited Item to HomeView list and set cursor to it.
        /// Rises PrepareAndSave() if confirmation dialog inherit ISupportWizardSave.
        /// (It needs if Wizard views has a property that is not binding to InnerItem)
        /// Works with a repository in not UI thread.
        /// Shows Load Animation
        /// </summary>
        /// <param name="item">Item for edit in confirmation dialog and store it</param>
        /// <param name="confirmation">confirmation dialog for editing given Item</param>
        /// <param name="repository">Repository</param>
        protected virtual void ItemAdd(T item, Confirmation confirmation, IRepository repository)
        {
            CommonWizardDialogRequest.Raise(confirmation, async(x) =>
            {
                if (x.Confirmed)
                {
                    ShowLoadingAnimation = true;

                    try
                    {
                        bool success = false;
                        await Task.Run(() =>
                        {
                            var vm = (x.Content as ISupportWizardSave);
                            if (vm != null)
                            {
                                success = vm.PrepareAndSave();
                            }
                            else
                            {
                                repository.Add(item);
                                repository.UnitOfWork.Commit();
                                success = true;
                            }
                        });

                        if (success)
                        {
                            AfterItemAddSaved(item);
                        }
                    }
                    finally
                    {
                        ShowLoadingAnimation = false;
                    }
                }
            });
        }
Ejemplo n.º 5
0
 protected void ItemAdd(T item, Confirmation confirmation, IRepository repository)
 {
     CommonWizardDialogRequest.Raise(confirmation, (x) =>
     {
         if (x.Confirmed)
         {
             OnUIThread(() => ShowLoadingAnimation = true);
             try
             {
                 repository.Add(item);
                 repository.UnitOfWork.Commit();
                 AfterItemAddSaved(item);
             }
             catch (Exception ex)
             {
                 ShowErrorDialog(ex, string.Format("An error occurred when trying to save".Localize(null, LocalizationScope.DefaultCategory)));
             }
             finally
             {
                 OnUIThread(() => ShowLoadingAnimation = false);
             }
         }
     });
 }
        protected virtual void ItemAdd(Confirmation confirmation, IRepository repository, object itemFromRep)
        {
            CommonWizardDialogRequest.Raise(confirmation, async(x) =>
            {
                if (x.Confirmed)
                {
                    OnUIThread(() => { ShowLoadingAnimation = true; });

                    try
                    {
                        await Task.Run(() =>
                        {
                            var vm = (x.Content as ISupportWizardSave);
                            if (vm != null)
                            {
                                vm.PrepareAndSave();
                            }
                            else
                            {
                                repository.Add(itemFromRep);
                                repository.UnitOfWork.Commit();
                            }
                        });
                        OnUIThread(() =>
                        {
                            var item = CreateItem(itemFromRep);
                            AfterItemAddSaved(item);
                        });
                    }
                    finally
                    {
                        OnUIThread(() => { ShowLoadingAnimation = false; });
                    }
                }
            });
        }