/// <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(); } }); }
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; } } }); }
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; }); } } }); }