public ViewDevicesPage()
 {
     InitializeComponent();
     Title       = "View My Devices";
     acctType    = (string)LogInResponseData.GetApplicationCurrentProperty(Constants.ACCOUNT_TYPE);
     usernameKey = Application.Current.Properties[Constants.USERNAME_KEY] as string;
     costCode    = Application.Current.Properties[Constants.USER_COSTCODE] as string;
 }
Ejemplo n.º 2
0
        //private async void Current_ConnectivityChanged(object sender, ConnectivityChangedEventArgs e)
        //{
        //    if (!e.IsConnected)
        //    {
        //        await DisplayAlert("Error", Constants.CHECK_CONNECTION, Constants.BUTTON_POS);
        //    }
        //}

        /*
         * On login button click event
         */
        async void OnButtonClicked(object sender, EventArgs args)
        {
            loadingOverlay.IsVisible = true;

            //perform login
            var username = usernameText.Text ?? string.Empty;
            var password = passwordText.Text ?? string.Empty;

            //Test mock Accounts
            UseMockDeviceAddress(username);

            //Checking for null values
            if (username.Length == 0 || password.Length == 0)
            {
                await DisplayAlert(string.Empty, Constants.INVALID_LOGIN, Constants.BUTTON_POS);

                loadingOverlay.IsVisible = false;
                return;
            }

            var assetId = Application.Current.Properties[Constants.DEVICE_ADDRESS] as string;

            Application.Current.Properties[Constants.USERNAME_KEY] = username;
            Application.Current.Properties[Constants.PASS_KEY]     = password;

            //Network Check
            if (!CrossConnectivity.Current.IsConnected)
            {
                await DisplayAlert("Error", Constants.CHECK_CONNECTION, Constants.BUTTON_POS);

                loadingOverlay.IsVisible = false;
                return;
            }

            //Calling loginDevice service contract
            var response = await ServiceClient.Instance.LoginDevice(assetId, username, password);

            if (response.ResponseCode != 200)
            {
                await DisplayAlert(string.Empty, Constants.INVALID_LOGIN, Constants.BUTTON_POS);

                loadingOverlay.IsVisible = false;
                return;
            }

            //Displaying error message from server
            if (response.ResponseString != null)
            {
                var responseObject = JObject.Parse(response.ResponseString);
                //Setting the user account type to toggle UI
                if (responseObject["message"] != null)
                {
                    await DisplayAlert("Alert!", Constants.UNAUTHORIZED_ACCESS, Constants.BUTTON_POS);

                    loadingOverlay.IsVisible = false;
                    return;
                }

                switch (username)
                {
                case "eus1":     // eus
                    LogInResponseData.SetApplicationCurrentProperty(Constants.ACCOUNT_TYPE, "1");
                    break;

                case "pm1":    //pm
                    LogInResponseData.SetApplicationCurrentProperty(Constants.ACCOUNT_TYPE, "0");
                    break;

                default:
                    LogInResponseData.SetApplicationCurrentProperty(Constants.ACCOUNT_TYPE, (string)responseObject["roles"][0]);
                    break;
                }

                DateTime current = DateTime.Now;
                Application.Current.Properties[Constants.CURRENT_DATE] = current.ToString();
            }

            //good login, replain main controller
            loadingOverlay.IsVisible     = false;
            Application.Current.MainPage = new NavigationPage(new HomePage());
        }
Ejemplo n.º 3
0
        public HomePage()
        {
            InitializeComponent();
            Title = "Home";
            string acctType = (string)LogInResponseData.GetApplicationCurrentProperty(Constants.ACCOUNT_TYPE);

            uniqueDeviceAddress = Application.Current.Properties[Constants.DEVICE_ADDRESS] as string;
            usernameKey         = Application.Current.Properties[Constants.USERNAME_KEY] as string;
            passKey             = Application.Current.Properties[Constants.PASS_KEY] as string;
            deviceModel         = Application.Current.Properties[Constants.DEVICE_MODEL] as string;

            ListView homeMenuLv = ObjectCreatorHelper.createListview(false, new DataTemplate(typeof(HomeMenuCell)), 80, true, Color.White);

            homeMenuLv.Margin          = new Thickness(8, 8, 8, 8);
            homeMenuLv.SeparatorColor  = Color.FromHex(Constants.LIST_SEPERATOR_COLOR);
            homeMenuLv.VerticalOptions = LayoutOptions.Fill;

            if (deviceModel != null)
            {
                assetModel.Text = deviceModel;
            }

            if (uniqueDeviceAddress != null)
            {
                currentAssetIdLbl.Text = uniqueDeviceAddress;
            }
            else
            {
                currentAssetIdLbl.Text = "UNKNOWN";
            }

            switch (acctType)
            {
            case "1":     // eus
                homeMenuLv.ItemsSource = MenuData.menuListSupport;
                AccountTypeTitle.Text  = "End User Support";
                break;

            case "0":    //pm
                isDisposalAccept       = true;
                homeMenuLv.ItemsSource = MenuData.menuListManager;
                AccountTypeTitle.Text  = "Property Management";
                break;

            default:
                homeMenuLv.ItemsSource = MenuData.menuListEmployee;
                AccountTypeTitle.Text  = "Employee";
                break;
            }

            homeOptions.Children.Add(homeMenuLv);
            homeMenuLv.ItemSelected += async(sender, e) =>
            {
                loadingOverlayHome.IsVisible = true;
                if (e.SelectedItem == null)
                {
                    // don't do anything if we just de-selected the row
                    return;
                }
                else
                {
                    switch ((e.SelectedItem as MenuObject).menuTitle)
                    {
                    case "Ingest a New Device":
                        //TODO: open up camera layout to add new device before directing user to IngestDevicePage()
                        await Navigation.PushAsync(new IngestDevicePage());

                        break;

                    case "Collect Device":
                        openBarCodeScaner(0);      //Removed
                        break;

                    case "Initiate Inventory Check":
                        var result = await DisplayAlert(Constants.INVENTORY_CHECK_TITLE, Constants.INVENTORY_CHECK_CONTENT, Constants.BUTTON_CONFIRM, Constants.BUTTON_CAN);

                        loadingOverlayHome.IsVisible = false;
                        break;

                    case "Accept a Transfer":     //  PM / EUS user is accepting transfer into their possesion
                        openBarCodeScaner(1);
                        break;

                    case "Disposal":     // PM Only
                        openBarCodeScaner(3);
                        break;

                    case "Submit Disposal Request":     //EUS Only
                        openBarCodeScaner(2);
                        break;

                    case "View Transfers":
                        await Navigation.PushAsync(new InitiateTransferPage());

                        break;

                    case "View My Devices":
                        await Navigation.PushAsync(new ViewDevicesPage());

                        break;

                    default:
                        await DisplayAlert("Tapped", "Error in code" + " row was selected", Constants.BUTTON_POS);

                        loadingOverlayHome.IsVisible = false;
                        break;
                    }
                    ((ListView)sender).SelectedItem = null;
                    loadingOverlayHome.IsVisible    = false;
                }
            };
        }