public static StorageHub <TToken, TValue> CreateXmlDatacontractFileStorageHub( Func <TToken, string> fileNameFactory, string folder = null, Func <Task <TToken[]> > storageTokensSelector = null) { var hub = new XmlDataContractStreamStorageHub <TToken, TValue>( async(tp, tk) => { folder = folder ?? Environment.CurrentDirectory; var filepath = Path.Combine(folder, fileNameFactory(tk)); switch (tp) { case StreamOpenType.Read: return(await TaskExHelper.FromResult(new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read))); case StreamOpenType.Write: return(await TaskExHelper.FromResult(new FileStream(filepath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))); default: return(null); } }, storageTokensSelector ); return(hub); }
public async Task <ShowAwaitableResult <TTarget> > ShowAndGetViewModelImmediately <TTarget>(TTarget targetViewModel = null, string viewMappingKey = null) where TTarget : class, IViewModel { var vm = targetViewModel ?? ServiceLocator.Instance.Resolve <TTarget>(viewMappingKey); var vmt = InternalTestShow(vm, viewMappingKey); return(await TaskExHelper.FromResult(new ShowAwaitableResult <TTarget>() { Closing = vm.WaitForClose(), ViewModel = vm })); }
public async Task <ShowAwaitableResult <TTarget> > ShowAndGetViewModel <TTarget>(TTarget targetViewModel = null, string viewMappingKey = null) where TTarget : class, IViewModel { IView view = null; view = InternalLocateViewIfNotSet <TTarget>(targetViewModel, viewMappingKey, view); targetViewModel = targetViewModel ?? view.ViewModel as TTarget; InternalShowView(view, Target, _navigator.CurrentBindingView.ViewModel); return(await TaskExHelper.FromResult(new ShowAwaitableResult <TTarget> { Closing = targetViewModel.WaitForClose(), ViewModel = targetViewModel })); }
public async Task <TService> ResolveAsync <TService>(string name = null, object paremeter = null) { name = name ?? ""; var subdic = ServiceTypedCache <TService> .dic; ServiceLocatorEntryStruct <TService> entry = null; if (subdic.TryGetValue(name, out entry)) { return(await entry.GetServiceAsync()); } else { //#if SILVERLIGHT_5||WINDOWS_PHONE_7 // return await T.askEx.FromResult(default(TService)); //#else // return await T.ask.FromResult(default(TService)); //#endif return(await TaskExHelper.FromResult(default(TService))); } }
/// <summary> /// Show a view model and return the view model after leave view. /// </summary> /// <typeparam name="TTarget">view model type</typeparam> /// <param name="targetViewModel">view model instance</param> /// <param name="viewMappingKey">mapping key</param> /// <returns></returns> public async Task <ShowAwaitableResult <TTarget> > ShowAndGetViewModelImmediately <TTarget>(TTarget targetViewModel = null, string viewMappingKey = null) where TTarget : class, IViewModel { IView view = null; view = InternalLocateViewIfNotSet <TTarget>(targetViewModel, viewMappingKey, view); targetViewModel = targetViewModel ?? view.ViewModel as TTarget; if (view.ViewType == ViewType.Page) { var mvpg = view as MVVMPage; mvpg.Frame = Frame; } SetVMAfterLoad(targetViewModel, view); InternalShowView(view, Target, _navigator.CurrentBindingView.ViewModel); return(await TaskExHelper.FromResult(new ShowAwaitableResult <TTarget> { Closing = targetViewModel.WaitForClose(), ViewModel = targetViewModel })); }
private async Task <bool> FileExists(string fileAName) { var p = Path.Combine(Environment.CurrentDirectory, fileAName); return(await TaskExHelper.FromResult(File.Exists(p))); }