Пример #1
0
        protected async Task When <T>(IRouterAction action, Func <T, Task> operation)
            where T : class, IRouterAction
        {
            var convertedAction = action as T;

            if (convertedAction != null)
            {
                await operation(convertedAction);
            }
        }
Пример #2
0
 public void Test_Actions_Are_Equal_When_Their_Parameters_Are_Equal(IRouterAction first, IRouterAction second, bool areEqual)
 {
     if (areEqual)
     {
         first.Should().Be(second);
         second.Should().Be(first);
     }
     else
     {
         first.Should().NotBe(second);
         second.Should().NotBe(first);
     }
 }
Пример #3
0
 public async Task DispatchAsync(IRouterAction action)
 {
     if (action == null)
     {
         throw new ArgumentNullException(nameof(action));
     }
     CheckInit();
     await When <ShowViewModelAction>(action, async showViewModelAction =>
     {
         await ShowViewModelAsync(showViewModelAction);
     });
     await When <NavigateBackAction>(action, async navigateBackAction =>
     {
         await NavigateBackAsync(navigateBackAction);
     });
     await When <ShowDefaultViewModelAction>(action, async a =>
     {
         if (Actions.Count == 0 && InitParams?.DefaultViewModelType != null && InitParams.DefaultParameters != null)
         {
             await
             DispatchAsync(RouterActions.ShowViewModel(InitParams.DefaultViewModelType, InitParams.DefaultParameters));
         }
     });
 }