private async Task SaveAsync(Object argument)
        {
            var canSaveResult = this.CanSave();

            if (canSaveResult != null && canSaveResult.Length > 0)
            {
                var translateExtension = new Citizen.Extensions.TranslateExtension();
                translateExtension.Text = canSaveResult.Length == 1 ? "Is" : "Are";
                var verb = translateExtension.ProvideValue(null) as string;

                var dialogService = Xamarin.Forms.DependencyService.Get <IDialogService>();
                await dialogService.AlertInfo("Error", "SavingRequirement", String.Join(",", canSaveResult), verb);

                return;
            }

            this.State = ViewStatesHelper.MoveToState(this.State, ViewStates.Saving);
            var permanentlySaved = this.OnSaving();

            var storeService = Xamarin.Forms.DependencyService.Get <IDataStoreService>();

            storeService.SaveTemporarily <T>(CurrentItem);

            this.State = ViewStatesHelper.MoveToState(this.State, ViewStates.Viewing);

            if (this.InitialState == ViewStates.Viewing && permanentlySaved == false)
            {
                this._initialState = ViewStatesHelper.MoveToState(this.InitialState, ViewStates.Updating, this.InitialState);
            }

            RefreshParentContainer();
        }
예제 #2
0
        public static string RetrieveTranslation(string translationKey)
        {
            var translateExtension = new Citizen.Extensions.TranslateExtension();

            translateExtension.Text = translationKey;
            var translation = translateExtension.ProvideValue(null) as string;

            return(translation);
        }
예제 #3
0
        public static Tuple <T, OperationKinds> TransformToDto <VM, T>(this VM model)
            where VM : ActionableBaseViewModel <VM, T>
            where T : class, Common.IModelDefinition
        {
            Core.CoreHelpers.ValidateDefined(model, "model from transfromDto");
            var viewstate   = model.State;
            var updateModel = model.CurrentItem;

            switch (viewstate)
            {
            case Core.ViewStates.Creating:
            case Core.ViewStates.CreatingViewing:
            case Core.ViewStates.UpdatingCreate:
                return(new Tuple <T, OperationKinds>(updateModel, OperationKinds.Create));

            case Core.ViewStates.Deleting:
                return(new Tuple <T, OperationKinds>(updateModel, OperationKinds.Delete));

            case Core.ViewStates.Updating:
            case Core.ViewStates.UpdatingViewing:
                return(new Tuple <T, OperationKinds>(updateModel, OperationKinds.Update));

            case Core.ViewStates.Viewing:
                if (model.InitialState == Core.ViewStates.Creating)
                {
                    return(new Tuple <T, OperationKinds>(updateModel, OperationKinds.Create));
                }
                else if (model.InitialState == Core.ViewStates.Updating)
                {
                    return(new Tuple <T, OperationKinds>(updateModel, OperationKinds.Update));
                }
                break;

            default:
                break;
            }

            var translateExtension = new Citizen.Extensions.TranslateExtension();

            translateExtension.Text = "TransformToDtoInvalidViewModelViewState";
            var errorMessage = translateExtension.ProvideValue(null) as string;

            throw new InvalidOperationException(errorMessage);
        }
예제 #4
0
        public async Task AlertInfo(string titleKey, string messageKey, params Object[] args)
        {
            var translateExtension = new Citizen.Extensions.TranslateExtension();

            translateExtension.Text = titleKey;
            var title = translateExtension.ProvideValue(null) as string;

            translateExtension.Text = messageKey;
            var messageText = translateExtension.ProvideValue(null) as string;

            if (args.Length > 0)
            {
                messageText = String.Format(messageText, args);
            }

            translateExtension.Text = "Ok";
            var okText = translateExtension.ProvideValue(null) as string;

            await App.Current.MainPage.DisplayAlert(title, messageText, okText);
        }
예제 #5
0
        public async Task <bool> ConfirmDeletion(string contentTextAppend, bool singleItem)
        {
            var translateExtension = new Citizen.Extensions.TranslateExtension();

            translateExtension.Text = "ConfirmItemDeletionTitle";
            var deleteTitle = translateExtension.ProvideValue(null) as string;

            translateExtension.Text = singleItem == true ? "ConfirmItemDeletionContent" : "ConfirmItemDeletionCount";
            var confirmationDeleteItemText       = translateExtension.ProvideValue(null) as string;
            var confirmationDeleteItemTextFormat = String.Format(confirmationDeleteItemText, contentTextAppend);

            translateExtension.Text = "Yes";
            var yestText = translateExtension.ProvideValue(null) as string;


            translateExtension.Text = "No";
            var NoText = translateExtension.ProvideValue(null) as string;

            bool answer = await App.Current.MainPage.DisplayAlert(deleteTitle, confirmationDeleteItemTextFormat, yestText, NoText);

            return(answer);
        }