Beispiel #1
0
        async void OnSaveAsync(object sender, EventArgs e)
        {
            string pathStr = PathEntry.Text;

            // edit exist one
            if (pathEntity != null)
            {
                if (string.IsNullOrEmpty(pathStr))
                {
                    //empty warning
                    messageLabel.Text = "Please fill the name with path";
                }
                else
                {
                    if (TopLevelSelector.SelectedItem != null)
                    {
                        pathEntity.Parent = TopLevelSelector.SelectedItem.ToString();
                    }
                    pathEntity.Path = PathEntry.Text;
                    _database.UpdatePath(pathEntity);
                    App.PathList = _database.GetPaths(App.UserEntity.ID);
                    await Navigation.PopAsync();
                }
            }
            // save new one
            else
            {
                PathEntity pe = new PathEntity();
                pe.UserID = App.UserEntity.ID;
                if (TopLevelSelector.SelectedItem != null)
                {
                    pe.Parent = TopLevelSelector.SelectedItem.ToString();
                }
                pe.Path = PathEntry.Text;
                _database.AddPath(pe);
                App.PathList = _database.GetPaths(App.UserEntity.ID);
                await Navigation.PopAsync();
            }
        }
Beispiel #2
0
        // click LOGIN event
        async void Login_CheckAsync(string pin)
        {
            var users = _database.GetUsers();

            // todo how go check usr
            foreach (var user in users)
            {
                if (user.Pin.Equals(pin))
                {
                    App.IsUserLoggedIn = true;
                    // set username to application
                    App.UserEntity = user;
                    // grab the paths
                    if (!App.UserEntity.Url.EndsWith("/", StringComparison.Ordinal))
                    {
                        App.UserEntity.Url += "/";
                    }
                    App.PathList = _database.GetPaths(user.ID);

                    await Task.Run(async() =>
                    {
                        await Task.Delay(0);
                        Device.BeginInvokeOnMainThread(() =>
                        {
                            Application.Current.MainPage = new MainPageCS();
                        });
                    });

                    return;
                }
                else
                {
                    Debug.WriteLine("Pin not match");
                }
            }
            if (!App.IsUserLoggedIn)
            {
                await Task.Run(async() =>
                {
                    await Task.Delay(0);
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        Application.Current.MainPage.DisplayAlert("Failed", "Pin not match", "Ok");
                    });
                });
            }
            inputString = Pin1 = Pin2 = Pin3 = Pin4 = Pin5 = "";
        }
Beispiel #3
0
        // register click event
        async void OnSaveButtonClicked(object sender, EventArgs e)
        {
            App.UserEntity.Name     = usernameEntry.Text;
            App.UserEntity.Password = passwordEntry.Text;
            App.UserEntity.Pin      = pinEntry.Text;
            App.UserEntity.Url      = urlEntry.Text;

            // Sign up logic goes here
            var signUpSucceeded = AreDetailsValid(App.UserEntity);

            if (signUpSucceeded)
            {
                //var rootPage = Navigation.NavigationStack.FirstOrDefault();
                _database.UpdateUser(App.UserEntity);
                // delete all the path exist
                //           foreach (var pt in App.PathList)
                //           {
                //               _database.DeletePath(pt);
                //           }
                //           // add all the paths
                //           for (int i = 0; i < pathUIlist.Count; i++)
                //           {
                //               PathEntity path = new PathEntity();
                //               PathItemUI item = pathUIlist.ElementAt(i);

                //               path.Number = i;
                //path.Path = item.path.Text;

                //    if(item.lblTop.Text!=null && !item.lblTop.Text.Equals(PathItemUI.NO_PARENT)){
                //        path.Parent = item.lblTop.Text;
                //    }else{
                //        path.Parent = PathItemUI.NO_PARENT;
                //    }
                //    path.UserID = App.UserEntity.ID;

                //    _database.AddPath(path);
                //}
                App.PathList = _database.GetPaths(App.UserEntity.ID);

                Application.Current.MainPage = new MainPageCS();
                await DisplayAlert("Success", "Update success", "Ok");
            }
            else
            {
                messageLabel.Text = "Update User failed";
            }
        }
Beispiel #4
0
        public AddPathCS(PathEntity pathEntity)
        {
            this.pathEntity      = pathEntity;
            this.BackgroundColor = Color.FromHex("BBDEFB");

            _database    = new YangDb();
            App.PathList = _database.GetPaths(App.UserEntity.ID);

            Title     = "Custom Paths";
            PathEntry = new Entry
            {
                Margin   = new Thickness(20, 5),
                Keyboard = Keyboard.Create(KeyboardFlags.None)
            };
            TopLevelSelector = new Picker
            {
                Margin = new Thickness(20, 5),
                Title  = "Top Level",
            };
            // fill parents picker
            // firstly add a No Parent option
            TopLevelSelector.Items.Add(NO_PARENT);

            foreach (var item in App.PathList)
            {
                TopLevelSelector.Items.Add(item.Path);
                // itself can not be its parent
                if (pathEntity != null && pathEntity.Path.Equals(item.Path))
                {
                    TopLevelSelector.Items.Remove(item.Path);
                }
            }

            if (pathEntity != null && pathEntity.Parent != null)
            {
                TopLevelSelector.SelectedItem = pathEntity.Parent;
            }


            // Grid container for buttons
            Grid btnCtn = new Grid
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Margin            = new Thickness(20, 5),
            };

            // warnging label
            messageLabel = new Label()
            {
                TextColor = Color.Red, Margin = new Thickness(20, 5)
            };

            Button btnSave = new Button()
            {
                Text = "Save", BackgroundColor = Color.White
            };

            btnSave.Clicked += OnSaveAsync;
            btnCtn.Children.Add(btnSave, 0, 0);

            // only when editing the path, there is delete option
            if (pathEntity != null)
            {
                PathEntry.Text = pathEntity.Path;

                Button btnDelete = new Button()
                {
                    Text = "Delete", BackgroundColor = Color.White
                };
                btnDelete.Clicked += OnDelete;
                btnCtn.Children.Add(btnDelete, 0, 1);
            }

            Content = new StackLayout()
            {
                BackgroundColor = Color.FromHex("BBDEFB"),
                VerticalOptions = LayoutOptions.StartAndExpand,
                Children        =
                {
                    new Label {
                        Text = "Path", Margin = new Thickness(20, 15, 0, 5)
                    },
                    PathEntry,
                    new Label {
                        Text = "Choose a Top Level", Margin = new Thickness(20, 5)
                    },
                    TopLevelSelector,
                    btnCtn,
                }
            };
        }
Beispiel #5
0
        //Grid gridCtn;
        //ListView lvPaths;

        //string url = "https://cirro.nimbus.co.nz/zd1";
        //string username = "******";
        //string password = "******";

        public PersonalInfoPageCS()
        {
            Debug.WriteLine("on construction");
            _database            = new YangDb();
            this.BackgroundColor = Color.FromHex("BBDEFB");
            App.PathList         = _database.GetPaths(App.UserEntity.ID);
            messageLabel         = new Label()
            {
                TextColor = Color.Red, Margin = new Thickness(20, 5)
            };
            usernameEntry = new Entry
            {
                Margin   = new Thickness(20, 5),
                Keyboard = Keyboard.Create(KeyboardFlags.None)
            };
            passwordEntry = new Entry
            {
                IsPassword = true,
                Margin     = new Thickness(20, 5)
            };
            pinEntry = new Entry()
            {
                Keyboard = Keyboard.Numeric,
                Margin   = new Thickness(20, 5)
            };
            pinEntry.TextChanged += Pin_Control;
            urlEntry              = new Entry()
            {
                Margin   = new Thickness(20, 5),
                Keyboard = Keyboard.Create(KeyboardFlags.None)
            };
            // Path container
            RelativeLayout pathTitleContainer = new RelativeLayout()
            {
                Margin = new Thickness(20, 5)
            };
            // path title
            Label pathTitle = new Label {
                Text = "Path"
            };

            pathTitleContainer.Children.Add(pathTitle,
                                            Constraint.Constant(0),
                                            Constraint.Constant(0)
                                            );

            // add ADD button
            Button btnAdd = new Button()
            {
                Text = "Add More Path", BackgroundColor = Color.White
            };

            btnAdd.Clicked += OnAddMoreClickedAsync;
            pathTitleContainer.Children.Add(btnAdd,
                                            Constraint.RelativeToView(pathTitle, (parent, sibling) => { return(sibling.X + sibling.Width + 20); }),
                                            Constraint.RelativeToParent((parent) => { return(-10); })
                                            );

            var saveButton = new Button
            {
                Text = "Save",
                MinimumHeightRequest = 40,
                BackgroundColor      = Color.White,
                Margin = new Thickness(20, 5)
            };

            saveButton.Clicked += OnSaveButtonClicked;

            Title    = "Personal Info";
            mContent = new StackLayout()
            {
                VerticalOptions = LayoutOptions.CenterAndExpand,
                Children        =
                {
                    new Label {
                        Text = "Username", Margin = new Thickness(20, 5)
                    },
                    usernameEntry,
                    new Label {
                        Text = "Password", Margin = new Thickness(20, 5)
                    },
                    passwordEntry,
                    new Label {
                        Text = "5 Digital Ping", Margin = new Thickness(20, 5)
                    },
                    pinEntry,
                    new Label {
                        Text = "URL", Margin = new Thickness(20, 5)
                    },
                    urlEntry,
                    pathTitleContainer,
                }
            };


            //int index = 0;
            //foreach (var item in App.PathList)
            //{
            //	//if()
            //	// add path
            //             mContent.Children.Add(MakeNewPath(item));

            //	index++;
            //}

            //isInit = false;
            mContent.Children.Add(saveButton);
            mContent.Children.Add(messageLabel);


            Content = new ScrollView {
                Content = mContent, Margin = new Thickness(0, 20)
            };
        }
Beispiel #6
0
        // click LOGIN event
        async void Login_CheckAsync(object sender, EventArgs e)
        {
            if (!(string.IsNullOrEmpty(pin1.Text) || string.IsNullOrEmpty(pin2.Text) || string.IsNullOrEmpty(pin3.Text) || string.IsNullOrEmpty(pin4.Text)))
            {
                if (Utils.IsNumeric(pin1.Text) && Utils.IsNumeric(pin2.Text) && Utils.IsNumeric(pin3.Text) && Utils.IsNumeric(pin4.Text))
                {
                    String pin   = pin1.Text + pin2.Text + pin3.Text + pin4.Text;
                    var    users = _database.GetUsers();
                    // todo how go check usr
                    foreach (var user in users)
                    {
                        if (user.Pin.Equals(pin))
                        {
                            App.IsUserLoggedIn = true;
                            //isSuccess = true;
                            // set username to application
                            App.UserEntity = user;
                            // grab the paths
                            //if (!App.UserEntity.Url.EndsWith("/", StringComparison.Ordinal))
                            //{
                            //	App.UserEntity.Url += "/";
                            //}
                            //App.UserEntity.Url = App.UserEntity.Url;
                            App.PathList = _database.GetPaths(user.ID);

                            // test log
                            foreach (var item in App.PathList)
                            {
                                string ret = "User ID:" + item.UserID + ",Path: " + item.Path + ", Parent: " + item.Parent;
                                Debug.WriteLine(ret);
                            }

                            await Task.Run(async() =>
                            {
                                await Task.Delay(0);
                                Device.BeginInvokeOnMainThread(() =>
                                {
                                    Application.Current.MainPage = new MainPageCS();
                                });
                            });

                            return;
                        }
                        else
                        {
                            //warning.Text = "Pin not match";
                            Debug.WriteLine("Pin not match");
                        }
                    }
                }
                else
                {
                    Debug.WriteLine("Pin only support number");
                }
                Debug.WriteLine("contain empty");
            }

            if (!alertLock)
            {
                alertLock         = true;
                pin1.TextChanged -= Entry_TextChanged;
                pin2.TextChanged -= Entry_TextChanged;
                pin3.TextChanged -= Entry_TextChanged;
                pin4.TextChanged -= Last_LastEntry;
                pin1.Text         = "";
                pin2.Text         = "";
                pin3.Text         = "";
                pin4.Text         = "";
                pin1.TextChanged += Entry_TextChanged;
                pin2.TextChanged += Entry_TextChanged;
                pin3.TextChanged += Entry_TextChanged;
                pin4.TextChanged += Last_LastEntry;

                Debug.WriteLine("fail to login");
                //Entry_Disanable(pin1);
                await DisplayAlert("Failed", "Please try again", "Ok");
            }
            pin1.Focus();
        }