protected void areaResultsGridView_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            AreaDisplayTypes displayType =
                (AreaDisplayTypes)System.Enum.Parse(typeof(AreaDisplayTypes), AreaRadioButton.SelectedValue);
            int selectedAreaId =
                int.Parse(AreaResultsGridView.DataKeys[int.Parse(e.CommandArgument.ToString())].Value.ToString());

            using (var partManagementRepository = SharePointServiceLocator.GetCurrent().GetInstance <IPartManagementRepository>())
            {
                IEnumerable <MachineDTO> machines = null;

                switch (displayType)
                {
                case AreaDisplayTypes.Category:
                    machines = partManagementRepository.GetMachinesByCategory(selectedAreaId);
                    break;

                case AreaDisplayTypes.Manufacturer:
                    machines = partManagementRepository.GetMachinesByManufacturer(selectedAreaId);
                    break;

                case AreaDisplayTypes.Department:
                    machines = partManagementRepository.GetMachinesByDepartment(selectedAreaId);
                    break;
                }
                ShowMachines(machines);
            }
        }
        protected void AreaRadioButton_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Clear the Part Results Grid
            PartResultsGridView.DataSource = null;
            PartResultsGridView.DataBind();
            PartResultUpdatePanel.Update();

            //Clear the Machine Results Grid
            MachineResultsGridView.DataSource = null;
            MachineResultsGridView.DataBind();
            MachineResultsUpdatePanel.Update();

            AreaDisplayTypes displayType = (AreaDisplayTypes)System.Enum.Parse(typeof(AreaDisplayTypes), AreaRadioButton.SelectedValue);

            //  AreaResultsGridView.Columns[1].HeaderText = "All " + MakePlural(displayType);
            using (var partManagementRepository = SharePointServiceLocator.GetCurrent().GetInstance <IPartManagementRepository>())
            {
                if (displayType == AreaDisplayTypes.Category)
                {
                    var categories = partManagementRepository.GetCategories();
                    var areaDtos   = categories.Select(category => new AreaDTO
                    {
                        Title = category.Title,
                        Id    =
                            category.Id.HasValue
                                                                                              ? category.Id.Value
                                                                                              : 0
                    });
                    ShowAreaResults(areaDtos);
                }
                if (displayType == AreaDisplayTypes.Department)
                {
                    var departments = partManagementRepository.GetDepartments();
                    var areaDtos    = departments.Select(department => new AreaDTO
                    {
                        Title = department.Title,
                        Id    =
                            department.Id.HasValue
                                                                                                 ? department.Id.Value
                                                                                                 : 0
                    });
                    ShowAreaResults(areaDtos);
                }
                if (displayType == AreaDisplayTypes.Manufacturer)
                {
                    var manufacturers = partManagementRepository.GetManufacturers();
                    var areaDtos      = manufacturers.Select(manufacturer => new AreaDTO
                    {
                        Title = manufacturer.Title,
                        Id    =
                            manufacturer.Id.
                            HasValue
                                                                                                     ? manufacturer.Id.
                            Value
                                                                                                     : 0
                    });
                    ShowAreaResults(areaDtos);
                }
            }
        }
        public IEnumerable <Machine> GetMachinesByArea(AreaDisplayTypes displayType, int selectedAreaId)
        {
            IEnumerable <Machine> machinesByArea = new List <Machine>();

            var presenter = new FindByAreaPresenter();

            machinesByArea = presenter.GetMachines(displayType, selectedAreaId);
            return(machinesByArea);
        }
        protected void areaResultsGridView_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            AreaDisplayTypes displayType = (AreaDisplayTypes)System.Enum.Parse(typeof(AreaDisplayTypes), AreaRadioButton.SelectedValue);
            int selectedAreaId           = int.Parse(AreaResultsGridView.DataKeys[int.Parse(e.CommandArgument.ToString())].Value.ToString());

            if (OnRelatedMachinesFound != null)
            {
                RelatedMachinesFound(new GenericEventArgs <IEnumerable <Machine> >
                {
                    PayLoad = GetMachinesByArea(displayType, selectedAreaId)
                });
            }
        }
        private string MakePlural(AreaDisplayTypes areaDisplayType)
        {
            switch (areaDisplayType)
            {
            case AreaDisplayTypes.Category:
                return("Categories");

            case AreaDisplayTypes.Manufacturer:
                return("Manufacturers");

            case AreaDisplayTypes.Department:
                return("Departments");

            default:
                throw new ArgumentOutOfRangeException("areaDisplayType");
            }
        }
        protected void AreaRadioButton_SelectedIndexChanged(object sender, EventArgs e)
        {
            AreaDisplayTypes displayType = (AreaDisplayTypes)System.Enum.Parse(typeof(AreaDisplayTypes), AreaRadioButton.SelectedValue);

            AreaResultsGridView.Columns[1].HeaderText = "All " + MakePlural(displayType);

            using (var partManagementRepository = new PartManagementRepository())
            {
                switch (displayType)
                {
                case AreaDisplayTypes.Category:
                    IEnumerable <Category> categories = partManagementRepository.GetCategories();
                    AreaResultsGridView.DataSource = GetAreaViewModels(categories);
                    break;

                case AreaDisplayTypes.Manufacturer:
                    IEnumerable <Manufacturer> manufacturers = partManagementRepository.GetManufacturers();
                    AreaResultsGridView.DataSource = GetAreaViewModels(manufacturers);
                    break;

                case AreaDisplayTypes.Department:
                    IEnumerable <Department> departments = partManagementRepository.GetDepartments();
                    AreaResultsGridView.DataSource = GetAreaViewModels(departments);
                    break;

                default:
                    throw new ArgumentOutOfRangeException("Area Display Type Not Found");
                }
            }
            AreaResultsGridView.DataBind();

            //Reset the MAchine Results Grid by clearing out the results and firing the event
            RelatedMachinesFound(new GenericEventArgs <IEnumerable <Machine> >
            {
                PayLoad = new List <Machine>()
            });
        }