public virtual async void OpenItemEditor(TItem item) { EditingItem = item; if (FormProvider == null) { return; } UsedForm = FormProvider.GetUIElement(); Cache.Set(EdiTItemCacheKey, EditingItem.DeepClone()); // cache item state so it can be restored later bool result = false; try { result = (bool)await DialogService.Show(UsedForm, (sender, args) => { OnItemEditorOpening(sender, new ItemEditorOpeningDialogEventArgs <TItem>(item)); if (args.ShouldClose) { args.Close(); } }, (sender, args) => { ItemEditorClosingDialogEventArgs <TItem> extArgs = new ItemEditorClosingDialogEventArgs <TItem>(args.Result, item); OnFormClosing(extArgs); if (extArgs.IsCancelled) { args.Cancel(); } }).ConfigureAwait(true); } catch (Exception ex) { Log.Error(ex, "Couldn't open form"); OnOpenFormFailed(item); return; } OnItemEdited(new ItemEditedEventArgs <TItem>(result, (TItem)Cache.Get(EdiTItemCacheKey), item)); Cache.Remove(EdiTItemCacheKey); }
protected override int SaveImpl() { EditingItem.EncryptPassword(); EntityManagerService.DefaultUserManager.ValidateAndSave(EditingItem); return(EditingItem.ID); }
public override void Init(User entity) { base.Init(entity); EditingItem.DecryptPassword(); }