public override void Close(IMvxViewModel viewModel) { var attribute = GetAttributeForViewModel(viewModel.GetType()); var attributeType = attribute.GetType(); if (AttributeTypesToActionsDictionary.TryGetValue( attributeType, out MvxPresentationAttributeAction attributeAction)) { if (attributeAction.CloseAction == null) { throw new NullReferenceException($"attributeAction.CloseAction is null for attribute: {attributeType.Name}"); } attributeAction.CloseAction.Invoke(viewModel, attribute); return; } throw new KeyNotFoundException($"The type {attributeType.Name} is not configured in the presenter dictionary"); }
public override void Show(MvxViewModelRequest request) { var attribute = GetPresentationAttribute(request.ViewModelType); attribute.ViewModelType = request.ViewModelType; var attributeType = attribute.GetType(); if (AttributeTypesToActionsDictionary.TryGetValue( attributeType, out MvxPresentationAttributeAction attributeAction)) { if (attributeAction.ShowAction == null) { throw new NullReferenceException($"attributeAction.ShowAction is null for attribute: {attributeType.Name}"); } attributeAction.ShowAction.Invoke(attribute.ViewType, attribute, request); return; } throw new KeyNotFoundException($"The type {attributeType.Name} is not configured in the presenter dictionary"); }