bykovme/nswallet

View on GitHub
src/NSWallet/NSWallet/Helpers/Labels/LabelsManagement.cs

Summary

Maintainability
B
5 hrs
Test Coverage
using System;
using System.Diagnostics;
using NSWallet.Shared;
using NSWallet.Shared.Helpers.Logs.AppLog;
using Xamarin.Forms;

namespace NSWallet.Helpers
{
    public static class LM
    {
        public static string[] Labels
        {
            get
            {
                return new string[]
                {
                    TR.Tr(GConsts.VALUETYPE_TEXT),
                    TR.Tr(GConsts.VALUETYPE_DATE),
                    TR.Tr(GConsts.VALUETYPE_TIME),
                    TR.Tr(GConsts.VALUETYPE_PASS),
                    TR.Tr(GConsts.VALUETYPE_LINK),
                    TR.Tr(GConsts.VALUETYPE_PHON),
                    TR.Tr(GConsts.VALUETYPE_MAIL)
                };
            }
        }

        public static string ValueTypeByTranslation(string translation)
        {
            if (translation == TR.Tr(GConsts.VALUETYPE_DATE))
                return GConsts.VALUETYPE_DATE;
            if (translation == TR.Tr(GConsts.VALUETYPE_TIME))
                return GConsts.VALUETYPE_TIME;
            if (translation == TR.Tr(GConsts.VALUETYPE_PASS))
                return GConsts.VALUETYPE_PASS;
            if (translation == TR.Tr(GConsts.VALUETYPE_LINK))
                return GConsts.VALUETYPE_LINK;
            if (translation == TR.Tr(GConsts.VALUETYPE_PHON))
                return GConsts.VALUETYPE_PHON;
            if (translation == TR.Tr(GConsts.VALUETYPE_MAIL))
                return GConsts.VALUETYPE_MAIL;
            return GConsts.VALUETYPE_TEXT;
        }

        static INavigation _navigation;
        static Command _command;

        public static void StartCreatingLabel(INavigation navigation, Command lastCommand)
        {
            _navigation = navigation;
            _command = lastCommand;
            NativePopup.EntryPopup(TR.Tr("create_label"), null, CreateNameCommand);
        }

        static string customLabelName { get; set; }
        static string customLabelType { get; set; }

        static Command createNameCommand;
        static Command CreateNameCommand
        {
            get
            {
                return createNameCommand ?? (createNameCommand = new Command(ExecuteCreateNameCommand));
            }
        }

        static void ExecuteCreateNameCommand(object obj)
        {
            if (obj != null)
            {
                NativePopup.ActionSheet(TR.Tr("create_label_choose_type"), Labels, ChooseTypeCommand);
                customLabelName = obj.ToString();
            }
            else
            {
                Application.Current.MainPage.DisplayAlert(TR.Tr("app_name"), TR.Tr("create_label_empty"), TR.OK);
            }
        }

        static Command chooseTypeCommand;
        static Command ChooseTypeCommand
        {
            get
            {
                return chooseTypeCommand ?? (chooseTypeCommand = new Command(ExecuteChooseTypeCommand));
            }
        }

        static void ExecuteChooseTypeCommand(object obj)
        {
            if (obj != null)
            {
                try
                {
                    customLabelType = obj.ToString();
                    Device.BeginInvokeOnMainThread(() => _navigation.PushAsync(AppPages.AddLabelScreen(customLabelName, customLabelType, null, null, _command)));
                }
                catch (Exception ex)
                {
                    AppLogs.Log(ex.Message, nameof(ExecuteChooseTypeCommand), nameof(LM));
                    Debug.WriteLine(ex.Message);
                }
            }
        }
    }
}