Пример #1
0
        protected void btn_closeIncident_Click(object sender, EventArgs e)
        {
            TechSupportContext context = new TechSupportContext();

            if (Convert.ToInt32(ddl_openIncidents.SelectedValue) > 0)
            {
                context.closeIncident(Convert.ToInt32(ddl_openIncidents.SelectedValue));

                lbl_incident_close.ForeColor = System.Drawing.Color.Black;
                lbl_incident_close.Text      = "Indident " + ddl_openIncidents.SelectedValue + " closed";

                // The following code is for making sure that the open incident drop down list
                // and the accordion refresh when the data has been altered.
                // I feel like there must be a better way to handle this, but this is what I have for now.
                List <Incident> incident = context.returnIncidents(Convert.ToInt32(ddl_customers.SelectedValue));
                List <SportsPro.Models.Incident> openIncidents = context.getOpenIncidents();
                Accd_Incident_View.DataSource    = incident;
                ddl_openIncidents.DataSource     = openIncidents;
                ddl_openIncidents.DataValueField = "IncidentID";
                ddl_openIncidents.DataTextField  = "IncidentID";

                ddl_openIncidents.DataBind();
                Accd_Incident_View.DataBind();
            }
            else
            {
                // If there is no data in the open incident drop down list, we display an error message
                lbl_incident_close.ForeColor = System.Drawing.Color.Red;
                lbl_incident_close.Text      = "No Incident Selected";
            }
        }
Пример #2
0
        protected void btn_submit_Click(object sender, EventArgs e)
        {
            // We check to make sure we have legitimate data inputs
            Boolean isTitleValid       = (!string.IsNullOrWhiteSpace(tb_title.Text));
            Boolean isDescriptionValid = (!string.IsNullOrWhiteSpace(tb_description.Text));
            Boolean isTechnicianValid  = (Convert.ToInt32(ddl_technicians.SelectedValue) > 0);
            Boolean isProductValid     = (!string.IsNullOrWhiteSpace(ddl_products.SelectedValue));

            Boolean allValid = (isDescriptionValid && isProductValid && isTechnicianValid && isTitleValid);

            // If all input is valid, we create a new Incident and add it to our data model
            if (allValid)
            {
                Incident newIncident = new Incident();

                newIncident.CustomerID  = Convert.ToInt32(ddl_customers.SelectedValue);
                newIncident.ProductCode = ddl_products.SelectedValue;
                newIncident.TechID      = Convert.ToInt32(ddl_technicians.SelectedValue);
                newIncident.DateOpened  = DateTime.Now;
                newIncident.DateClosed  = null;
                newIncident.Title       = tb_title.Text;
                newIncident.Description = tb_description.Text;

                TechSupportContext newContext = new TechSupportContext();

                newContext.addIncident(newIncident);

                // We make sure any error messages are no longer visible, inform the user of success, and clear the textboxes
                hideAllErrorMessages();
                lbl_submitted.ForeColor = System.Drawing.Color.Black;
                lbl_submitted.Text      = "Incident \"" + tb_title.Text + "\" has been added.";
                tb_title.Text           = "";
                tb_description.Text     = "";

                // The following code is for making sure that the open incident drop down list
                // and the accordion refresh when the data has been altered.
                // I feel like there must be a better way to handle this, but this is what I have for now.
                List <Incident> incident = newContext.returnIncidents(Convert.ToInt32(ddl_customers.SelectedValue));
                List <SportsPro.Models.Incident> openIncidents = newContext.getOpenIncidents();
                Accd_Incident_View.DataSource    = incident;
                ddl_openIncidents.DataSource     = openIncidents;
                ddl_openIncidents.DataValueField = "IncidentID";
                ddl_openIncidents.DataTextField  = "IncidentID";

                ddl_openIncidents.DataBind();
                Accd_Incident_View.DataBind();
            }
            else
            {
                // If there is a problem with one of the inputs, we display the appropriate error messages
                if (!isTitleValid)
                {
                    lbl_titleError.Visible = true;
                }
                if (!isDescriptionValid)
                {
                    lbl_descError.Visible = true;
                }
                if (!isTechnicianValid)
                {
                    lbl_technicianError.Visible = true;
                }
                if (!isProductValid)
                {
                    lbl_productsError.Visible = true;
                }

                lbl_submitted.ForeColor = System.Drawing.Color.Red;
                lbl_submitted.Text      = "Please enter all information correctly";
            }
        }
Пример #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var techSupportContext = new TechSupportContext();

            // If this is the first time we are loading the page, we query the data and populate the drop down lists
            if (!Page.IsPostBack)
            {
                List <SportsPro.Models.Customer>   customerList   = techSupportContext.getAllCustomers();
                List <SportsPro.Models.Technician> technicianList = techSupportContext.getAllTechnicians();
                List <SportsPro.Models.Product>    productList    = techSupportContext.getAllProducts();
                List <SportsPro.Models.Incident>   openIncidents  = techSupportContext.getOpenIncidents();

                if (customerList != null)
                {
                    ddl_customers.DataSource     = customerList;
                    ddl_customers.DataValueField = "CustomerID";
                    ddl_customers.DataTextField  = "Name";
                    ddl_customers.DataBind();
                }

                if (technicianList != null)
                {
                    ddl_technicians.DataSource     = technicianList;
                    ddl_technicians.DataValueField = "TechID";
                    ddl_technicians.DataTextField  = "Name";
                    ddl_technicians.DataBind();
                }

                if (productList != null)
                {
                    ddl_products.DataSource     = productList;
                    ddl_products.DataValueField = "ProductCode";
                    ddl_products.DataTextField  = "Name";
                    ddl_products.DataBind();
                }

                if (openIncidents != null)
                {
                    ddl_openIncidents.DataSource     = openIncidents;
                    ddl_openIncidents.DataValueField = "IncidentID";
                    ddl_openIncidents.DataTextField  = "IncidentID";
                    ddl_openIncidents.DataBind();
                }
            }

            // Now, whenever a PostBack happens, the Accordian Control updates it's data
            int selectedID = Convert.ToInt32(ddl_customers.SelectedValue);

            // We make sure that the selected value in the Customer ddl is a valid integer.
            if (selectedID > 0)
            {
                TechSupportContext context  = new TechSupportContext();
                List <Incident>    incident = context.returnIncidents(selectedID);
                Accd_Incident_View.DataSource = incident;
                Accd_Incident_View.DataBind();

                // The following line makes sure that the Accordian clears itself if a Customer without issues is selected
                if (incident == null)
                {
                    Accd_Incident_View.Panes.Clear();
                }
            }
        }