public ReadonlyProfileTableViewModel(INavigationService navigationService, ISchedulerService schedulerService)
            : base(navigationService, schedulerService)
        {
            Title            = "31 South Drive";
            Intent           = Xamarin.Forms.TableIntent.Form;
            BackgroundColour = Color.Black;
            _addItemCommand  = new Command(async() =>
            {
                await Navigation.PushModalAsync <TestAddItemTableViewModel>();
            });
            _userProfile = new UserProfileExample()
            {
                Firstname           = "Jacob",
                EnableNotifications = true,
            };

            var areas           = AddSection("Areas", false);
            var environmentCell = areas.AddIconCell(Redbridge.Forms.Icon.School, "Environment", indicators: CellIndicators.Disclosure);

            environmentCell.CellHeight       = TableCellHeight.Medium;
            environmentCell.BackgroundColour = Color.FromHex("E27D60");
            environmentCell.DisplayMode      = IconCellViewMode.TitleOnly;
            environmentCell.TextColour       = Color.White;
            environmentCell.IconColour       = Color.White;

            var utilitiesCell = areas.AddIconCell(Redbridge.Forms.Icon.Settings, "Utilities", indicators: CellIndicators.Disclosure);

            utilitiesCell.CellHeight       = TableCellHeight.Medium;
            utilitiesCell.BackgroundColour = Color.FromHex("085DCB");
            utilitiesCell.DisplayMode      = IconCellViewMode.TitleOnly;
            utilitiesCell.TextColour       = Color.White;
            utilitiesCell.IconColour       = Color.White;

            var propertyCell = areas.AddIconCell(Redbridge.Forms.Icon.Home, "Property", indicators: CellIndicators.Disclosure);

            propertyCell.CellHeight       = TableCellHeight.Medium;
            propertyCell.BackgroundColour = Color.FromHex("E8A87C");
            propertyCell.DisplayMode      = IconCellViewMode.TitleOnly;
            propertyCell.TextColour       = Color.White;
            propertyCell.IconColour       = Color.White;

            var crimeCell = areas.AddIconCell(Redbridge.Forms.Icon.Police, "Crime", indicators: CellIndicators.Disclosure);

            crimeCell.CellHeight       = TableCellHeight.Medium;
            crimeCell.BackgroundColour = Color.FromHex("C38D9E");
            crimeCell.DisplayMode      = IconCellViewMode.TitleOnly;
            crimeCell.TextColour       = Color.White;
            crimeCell.IconColour       = Color.White;

            var valuationCell = areas.AddIconCell(Redbridge.Forms.Icon.Money, "Valuation", indicators: CellIndicators.Disclosure);

            valuationCell.CellHeight       = TableCellHeight.Medium;
            valuationCell.BackgroundColour = Color.FromHex("41B3A3");
            valuationCell.DisplayMode      = IconCellViewMode.TitleOnly;
            valuationCell.TextColour       = Color.White;
            valuationCell.IconColour       = Color.White;

            areas.AddCell(new IconTextCellViewModel(Redbridge.Forms.Icon.Hospital, "Some text", "", CellIndicators.Disclosure));
            Toolbar.Add(new TextToolbarItemViewModel()
            {
                Text = "Add", Command = _addItemCommand
            });
        }
        public TestEditableTableViewModel(IAuthenticationClientFactory signInFactory, IAlertController alerts, INavigationService navigationService, ISchedulerService scheduler)
            : base(alerts, navigationService, scheduler)
        {
            _signInFactory = signInFactory;

            _userProfile = new UserProfileExample()
            {
                Firstname           = "John",
                EnableNotifications = true,
            };

            _loginGoogle = new Command(() =>
            {
                var signin = _signInFactory.Create("Google");
                signin.BeginLoginAsync();
            });

            var item1 = new TestItem()
            {
                DisplayText = "Smith"
            };
            var item2 = new TestItem()
            {
                DisplayText = "Smythe"
            };
            var categories = new[] { item1, item2 };

            Title = "Editable Table Test";
            var general = AddSection("General");

            general.AddCell(new SelectCellViewModel <TestItem, Guid>()
            {
                Label = "Category", PlaceholderText = "Select category", ItemSource = categories
            });
            general.AddCell(new DateTimeCellViewModel()
            {
                Label = "Entry date", PlaceholderText = "Select entry date"
            });
            general.AddCell(new SelectCellViewModel <TestItem, Guid>()
            {
                Label = "Other category", PlaceholderText = "Select other category", ItemSource = categories, SelectedItem = item2
            });

            var detail = AddSection("Detail");

            detail.AddCell(new TextEntryCellViewModel()
            {
                AutoCapitalisationMode = AutoCapitalisationMode.All
            });
            detail.AddTextEntryCell(_userProfile, (up) => up.Firstname, "Firstname", "Enter first name");
            detail.AddTextEntryCell(_userProfile, (up) => up.Surname, "Surname", "Enter surname", Redbridge.Forms.Icon.Account);
            detail.AddDateTimeCell(_userProfile, (up) => up.DateOfBirth, "Birthday", "Enter birthday");
            var cell = detail.AddSwitchCell(_userProfile, (up) => up.EnableNotifications, "Notifications");

            var logins = AddSection("Logins");

            logins.AddCell(new TextCellViewModel()
            {
                Command = _loginGoogle, Text = "Google me"
            });

            var list = AddSection("List");
        }