public override void LoadDataAsync(LoadCommand cmd, LoadDataAsyncParameters cmdParam, Action<PaneViewModelBase> success = null, Action<PaneViewModelBase, Exception> error = null)
 {
     base.LoadDataAsync(cmd, cmdParam, success, error);
     switch (cmd)
     {
         case LoadCommand.Load:
             WorkHandler.Run(
                 () =>
                 {
                     _packageContent = (BinaryContent)cmdParam.Payload;
                     _stfs = ModelFactory.GetModel<StfsPackage>(_packageContent.Content);
                     return true;
                 },
                 result =>
                     {
                         IsLoaded = true;
                         Tabs.Add(new ProfileRebuilderTabItemViewModel(Resx.FileStructure, ParseStfs(_stfs)));
                         SelectedTab = Tabs.First();
                         if (success != null) success.Invoke(this);
                     },
                 exception =>
                 {
                     if (error != null) error.Invoke(this, exception);
                 });
             break;
     }
 }
 public override void LoadDataAsync(LoadCommand cmd, LoadDataAsyncParameters cmdParam, Action<PaneViewModelBase> success = null, Action<PaneViewModelBase, Exception> error = null)
 {
     base.LoadDataAsync(cmd, cmdParam, success, error);
     switch (cmd)
     {
         case LoadCommand.Load:
             using (var db = _dbContext.Open())
             {
                 Items.AddRange(db.Get<FtpConnection>().Select(c => new FtpConnectionItemViewModel(c)));
             }
             var add = new NewConnectionPlaceholderViewModel();
             Items.Add(add);
             break;
         case LoadCommand.Restore:
             Save(cmdParam.Payload as FtpConnectionItemViewModel);
             ConnectedFtp = null;
             break;
     }
     if (success != null) success.Invoke(this);
 }