Beispiel #1
0
            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);
            }
Beispiel #2
0
        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 }));
        }
Beispiel #3
0
            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
                }));
            }
Beispiel #4
0
            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)));
                }
            }
Beispiel #5
0
        /// <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
            }));
        }
Beispiel #6
0
        private async Task <bool> FileExists(string fileAName)
        {
            var p = Path.Combine(Environment.CurrentDirectory, fileAName);

            return(await TaskExHelper.FromResult(File.Exists(p)));
        }