protected override void OnBindingContextChanged()
        {
            model = (StudentHeadCountModel)BindingContext;
            base.OnBindingContextChanged();
            StackLayout stack = CreateStudentHeadCountCellLayout();

            View = stack;
        }
Example #2
0
        /// <summary>
        /// HeadCount Layout
        /// </summary>
        public void HeadCountLayout()
        {
            try
            {
                TitleBar    lblPageName = new TitleBar("Head Count");
                StackLayout slTitle     = new StackLayout
                {
                    Orientation     = StackOrientation.Horizontal,
                    Padding         = new Thickness(0, 5, 0, 0),
                    BackgroundColor = Color.White,
                    Children        = { lblPageName }
                };

                Seperator spTitle = new Seperator();

                Image imgTypeDropDown = new Image {
                    Source = Constants.ImagePath.DropDownArrow, HorizontalOptions = LayoutOptions.EndAndExpand
                };
                Label lblType = new Label {
                    TextColor = Color.Black
                };
                lblType.Text = "Employee";
                Picker pcrType = new Picker {
                    IsVisible = false
                };

                StackLayout slTypeDisplay = new StackLayout {
                    Children = { lblType, pcrType, imgTypeDropDown }, Orientation = StackOrientation.Horizontal, Padding = new Thickness(Device.OnPlatform(0, 5, 0), Device.OnPlatform(0, 5, 0), Device.OnPlatform(0, 10, 0), Device.OnPlatform(0, 5, 0))
                };

                //Frame layout for start date
                Frame frmType = new Frame
                {
                    Content           = slTypeDisplay,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    OutlineColor      = Color.Black,
                    Padding           = new Thickness(10)
                };

                var typeTap = new TapGestureRecognizer();

                typeTap.NumberOfTapsRequired = 1; // single-tap
                typeTap.Tapped += (s, e) =>
                {
                    pcrType.Focus();
                };
                frmType.GestureRecognizers.Add(typeTap);
                slTypeDisplay.GestureRecognizers.Add(typeTap);

                StackLayout slTypeFrmaeLayout = new StackLayout
                {
                    Children = { frmType }
                };

                StackLayout slTypeLayout = new StackLayout
                {
                    Children          = { slTypeFrmaeLayout },
                    Orientation       = StackOrientation.Vertical,
                    HorizontalOptions = LayoutOptions.FillAndExpand
                };

                pcrType.Items.Add("Student");
                pcrType.Items.Add("Employee");

                Image imgStandardDropDown = new Image {
                    Source = Constants.ImagePath.DropDownArrow, HorizontalOptions = LayoutOptions.EndAndExpand
                };
                Label lblStandard = new Label {
                    TextColor = Color.Black, Text = "Standard"
                };
                Picker pcrStandard = new Picker {
                    IsVisible = false, Title = "Standard"
                };

                foreach (StandardModel item in _StandardList)
                {
                    pcrStandard.Items.Add(item.Name);
                }

                StackLayout slStandardDisplay = new StackLayout {
                    Children = { lblStandard, pcrStandard, imgStandardDropDown }, Orientation = StackOrientation.Horizontal, Padding = new Thickness(Device.OnPlatform(0, 5, 0), Device.OnPlatform(0, 5, 0), Device.OnPlatform(0, 10, 0), Device.OnPlatform(0, 5, 0))
                };

                Frame frmStandard = new Frame
                {
                    Content           = slStandardDisplay,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    OutlineColor      = Color.Black,
                    Padding           = new Thickness(10)
                };

                var standardTap = new TapGestureRecognizer();

                standardTap.NumberOfTapsRequired = 1; // single-tap
                standardTap.Tapped += (s, e) =>
                {
                    pcrStandard.Focus();
                };
                frmStandard.GestureRecognizers.Add(standardTap);
                slStandardDisplay.GestureRecognizers.Add(standardTap);

                StackLayout slStandardFrameLayout = new StackLayout
                {
                    Children = { frmStandard }
                };

                StackLayout slStandardLayout = new StackLayout
                {
                    Children          = { slStandardFrameLayout },
                    Orientation       = StackOrientation.Vertical,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    IsVisible         = false
                };

                #region Teacher
                Label lblTotal = new Label
                {
                    Text      = "Total",
                    TextColor = Color.Black
                };

                Label lblTotalValue = new Label
                {
                    TextColor = Color.Black
                };

                Label lblTotalMale = new Label
                {
                    Text      = "Total Male",
                    TextColor = Color.Black
                };

                Label lblTotalMaleValue = new Label
                {
                    TextColor = Color.Black
                };

                Label lblTotalFeMale = new Label
                {
                    Text      = "Total FeMale",
                    TextColor = Color.Black
                };
                Label lblTotalFeMalValue = new Label
                {
                    TextColor = Color.Black
                };

                StackLayout slTotal = new StackLayout
                {
                    Orientation       = StackOrientation.Vertical,
                    Children          = { lblTotal, lblTotalValue },
                    HorizontalOptions = LayoutOptions.StartAndExpand
                };

                StackLayout slTotalMale = new StackLayout
                {
                    Orientation       = StackOrientation.Vertical,
                    Children          = { lblTotalMale, lblTotalMaleValue },
                    HorizontalOptions = LayoutOptions.CenterAndExpand
                };

                StackLayout slTotalFeMale = new StackLayout
                {
                    Orientation       = StackOrientation.Vertical,
                    Children          = { lblTotalFeMale, lblTotalFeMalValue },
                    HorizontalOptions = LayoutOptions.EndAndExpand
                };

                StackLayout slEmployee = new StackLayout
                {
                    Children          = { slTotal, slTotalMale, slTotalFeMale },
                    Orientation       = StackOrientation.Horizontal,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    IsVisible         = false
                };

                if (!string.IsNullOrEmpty(Convert.ToString(_EmployeeModel.Total)) && !string.IsNullOrEmpty(Convert.ToString(_EmployeeModel.TotalMale)) && !string.IsNullOrEmpty(Convert.ToString(_EmployeeModel.TotalFemale)))
                {
                    lblTotalValue.Text      = Convert.ToString(_EmployeeModel.Total);
                    lblTotalMaleValue.Text  = Convert.ToString(_EmployeeModel.TotalMale);
                    lblTotalFeMalValue.Text = Convert.ToString(_EmployeeModel.TotalFemale);

                    slEmployee.IsVisible = true;
                }
                else
                {
                    _NotAvailData.IsVisible = false;
                }

                #endregion

                #region Student

                ListView studentHeadCountListView = new ListView();
                studentHeadCountListView.HasUnevenRows  = true;
                studentHeadCountListView.SeparatorColor = Color.Gray;

                studentHeadCountListView.ItemTemplate = new DataTemplate(() => new StudentHeadCountCell());

                #endregion

                pcrType.SelectedIndexChanged += async(sender, e) =>
                {
                    try
                    {
                        using (UserDialogs.Instance.Loading("Loading"))
                        {
                            string type = lblType.Text = pcrType.Items[pcrType.SelectedIndex];

                            if (type == "Student")
                            {
                                slStandardLayout.IsVisible = true;
                                slEmployee.IsVisible       = false;
                                _NotAvailData.IsVisible    = false;

                                _StandardList = await StandardModel.GetStandard();

                                if (_StandardList != null && _StandardList.Count > 0)
                                {
                                    foreach (StandardModel item in _StandardList)
                                    {
                                        pcrStandard.Items.Add(item.Name);
                                    }
                                }
                                else
                                {
                                    _NotAvailData.IsVisible = true;
                                }
                            }
                            else
                            {
                                slStandardLayout.IsVisible = false;
                                _EmployeeModel             = await EmployeeModel.GetEmployeeCount();

                                if (!string.IsNullOrEmpty(Convert.ToString(_EmployeeModel.Total)) && !string.IsNullOrEmpty(Convert.ToString(_EmployeeModel.TotalMale)) && !string.IsNullOrEmpty(Convert.ToString(_EmployeeModel.TotalFemale)))
                                {
                                    lblTotalValue.Text      = Convert.ToString(_EmployeeModel.Total);
                                    lblTotalMaleValue.Text  = Convert.ToString(_EmployeeModel.TotalMale);
                                    lblTotalFeMalValue.Text = Convert.ToString(_EmployeeModel.TotalFemale);

                                    slEmployee.IsVisible = true;
                                }
                                else
                                {
                                    _NotAvailData.IsVisible = false;
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                };

                pcrStandard.SelectedIndexChanged += async(sender, e) =>
                {
                    using (UserDialogs.Instance.Loading("Loading"))
                    {
                        string standardName = lblStandard.Text = pcrStandard.Items[pcrStandard.SelectedIndex];

                        int standardID = _StandardList.Where(x => x.Name == standardName).FirstOrDefault().Id;

                        _StudentHeadCountModelList = await StudentHeadCountModel.GetStudentHeadCount(9);

                        if (_StudentHeadCountModelList != null && _StudentHeadCountModelList.Count > 0)
                        {
                            Items = new ObservableCollection <StudentHeadCountModel>(_StudentHeadCountModelList);
                            _NotAvailData.IsVisible = false;
                            studentHeadCountListView.ItemsSource = Items;
                        }
                        else
                        {
                            _NotAvailData.IsVisible = true;
                        }
                    }
                };

                StackLayout slStudent = new StackLayout
                {
                    Children    = { slStandardLayout, studentHeadCountListView },
                    Orientation = StackOrientation.Vertical
                };

                StackLayout slHeadCount = new StackLayout
                {
                    Children =
                    {
                        new StackLayout {
                            Padding         = new Thickness(20, Device.OnPlatform(40, 20, 0), 20, 20),
                            Children        = { slTitle, spTitle.LineSeperatorView, slTypeLayout, _NotAvailData, slEmployee, slStudent },
                            VerticalOptions = LayoutOptions.FillAndExpand,
                        },
                    },
                    BackgroundColor = LayoutHelper.PageBackgroundColor
                };

                Content = new ScrollView
                {
                    Content = slHeadCount,
                };
            }
            catch (Exception ex)
            {
            }
        }