Example #1
0
        public static async Task Remote <UserType>(
            Action <ISyncOprations, UserType> ServerSide,
            Func <IAsyncOprations, Task> ClientSide)
            where UserType : User <UserType>
        {
            await Connect(async (rq) =>
            {
                await BaseLogin?.Invoke(rq);
                if (ShowMessages)
                {
                    Publish.ShowAction("در حال ارسال درخواست");
                }
                await rq.RunOnOtherSide(ServerSide);
                if (ShowMessages)
                {
                    Publish.ShowAction("در حال انجام عملیات");
                }
                await ClientSide(rq);
            });

            if (ShowMessages)
            {
                Publish.HideAction();
            }
        }
Example #2
0
        public static async Task Safe(Func <Task> Action)
        {
            try
            {
                await Action();
            }
            catch (Exception ex)
            {
                var Message = ex.Message;
                try
                {
                    Publish.HideAction();
                    {
                        var ex2 = ex;
                        ex = ex.InnerException;
                        while (ex != null)
                        {
                            Message = "   " + ex.Message;
                            ex      = ex.InnerException;
                        }
                        ex = ex2;
                    }
                    if (ex is ThisException)
                    {
                        Publish.ShowDangerMessage(Message);
                    }
                    else if (ex.StackTrace.IndexOf("Monsajem_Incs.Database") > -1 &&
                             ex.StackTrace.IndexOf("Monsajem_Incs.Database.Base.Extentions.<GetUpdate>") < 0)
                    {
                        Console.WriteLine("Database Error! need to cleare!");
                        ShowCrashOnDataBase?.Invoke();
                        //await Task.Delay(2000);
                        //NavigationManager.NavigateTo(NavigationManager.Uri, true);
                    }
                    else
                    {
                        OnException(Message);
                    }
                }
                catch { }

                Console.WriteLine(Message);
                Console.WriteLine(ex.StackTrace);
                throw;
            }
        }
Example #3
0
        public static async Task Remote(Action Ac)
        {
            await Connect(async (rq) =>
            {
                await BaseLogin?.Invoke(rq);
                if (ShowMessages)
                {
                    Publish.ShowAction("در حال انجام عملیات");
                }
                await rq.RunOnOtherSide(Ac);
            });

            if (ShowMessages)
            {
                Publish.HideAction();
            }
        }