Esempio n. 1
0
        /// <summary>
        /// Provoque un appel protégé avec sauvegarde si les modifications d'un thème n'ont pas été enregistré
        /// </summary>
        async Task <bool> CallProtectedWithDirtySaveIfRequired(Func <Task <bool> > call)
        {
            Exception error = null;

            try
            {
                // Si le thème actuel est à sauvegarder
                if (CurrentNatalChart.IsDirty)
                {
                    // On demande à l'utilisateur ce qu'il veut faire
                    var cr = await DialogService.Confirm(
                        AstroAssistant.Resources.Locales.SaveChangesDialogTitle,
                        AstroAssistant.Resources.Locales.SaveChangesDialogMessage,
                        DialogConfirmType.YesNoCancel);

                    if (cr == DialogConfirmResult.Cancel)
                    {
                        return(false);
                    }
                    if (cr == DialogConfirmResult.Yes)
                    {
                        if (!await CurrentNatalChart.Save())
                        {
                            return(false);
                        }
                    }
                }
                // On provoque l'appel
                return(await call());
            }
            catch (Exception ex)
            {
                error = ex;
            }
            if (error != null)
            {
                await DialogService.ShowError(error);
            }
            return(false);
        }
Esempio n. 2
0
 /// <summary>
 /// Enregistrement d'un thème astral
 /// </summary>
 public Task <bool> SaveNatalChart()
 {
     return(CallProtectedWithDirtySaveIfRequired(() => Task.Run(() => CurrentNatalChart.Save())));
 }