public static Int32 InsertTicket(CreateAdminTicketDAL newIssue)
    {
        SqlCommand insertCommand = new SqlCommand("CREATE_TICKET_ADMIN", Connection);

        //Pass variable parameters to procedure
        insertCommand.CommandType = CommandType.StoredProcedure;
        insertCommand.Parameters.AddWithValue("@issuer", newIssue.issuer);
        insertCommand.Parameters.AddWithValue("@email", newIssue.email);
        insertCommand.Parameters.AddWithValue("@dept", newIssue.dept);
        insertCommand.Parameters.AddWithValue("@system", newIssue.system);
        insertCommand.Parameters.AddWithValue("@probDesc", newIssue.problemDesc);
        insertCommand.Parameters.AddWithValue("@priority", newIssue.priority);
        insertCommand.Parameters.AddWithValue("@repeatIssue", newIssue.repeatIssue);
        insertCommand.Parameters.AddWithValue("@division", newIssue.division);
        insertCommand.Parameters.AddWithValue("@assignedTo", newIssue.assignedTo);

        insertCommand.Parameters.AddWithValue("@issueType", newIssue.issueType);
        insertCommand.Parameters.AddWithValue("@prjNum", (object)newIssue.prjNum ?? DBNull.Value);

        insertCommand.Parameters.AddWithValue("@status", newIssue.status);
        insertCommand.Parameters.AddWithValue("@SubSystem", (object)newIssue.subSystem ?? DBNull.Value);
        insertCommand.Parameters.AddWithValue("@ResolveTime", (object)newIssue.TimeToResolve ?? DBNull.Value);
        insertCommand.Parameters.AddWithValue("@rootCause", (object)newIssue.RootCause ?? DBNull.Value);


        insertCommand.Parameters.AddWithValue("@PCA", (object)newIssue.PermanentFix ?? DBNull.Value);
        insertCommand.Parameters.AddWithValue("@resolution", (object)newIssue.ImmediateFix ?? DBNull.Value);
        insertCommand.Parameters.AddWithValue("@skill", (object)newIssue.Closed ?? DBNull.Value);
        insertCommand.Parameters.AddWithValue("@ticket_status", (object)newIssue.Closed ?? DBNull.Value);

        SqlParameter targetCompleteParam = new SqlParameter("@targetComplete", SqlDbType.DateTime);

        targetCompleteParam.Value = (object)newIssue.targetCompletionDate ?? DBNull.Value;



        insertCommand.Parameters.Add(targetCompleteParam);



        SqlParameter ticketID = new SqlParameter("@ticketID", SqlDbType.Int);

        ticketID.Direction = ParameterDirection.Output;
        insertCommand.Parameters.Add(ticketID);

        try
        {
            Connection.Open();
            insertCommand.ExecuteNonQuery();
            return(int.Parse(ticketID.Value.ToString()));
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            Connection.Close();
        }
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        CreateAdminTicketDAL insert = new CreateAdminTicketDAL();
        string problem;

        //Validation
        if (ddlEmployee.SelectedValue == "000")
        {
            lblEmployee.Visible = true;
            return;
        }
        else
        {
            lblEmployee.Visible = false;
        }

        //Email Validation
        if (txtEmail.Text.Trim() == "" || txtEmail.Text == null)
        {
            lblEmail.Visible    = true;
            lblEmailMSG.Visible = true;
            return;
        }
        if (txtEmail.Text.IndexOf("@") == -1)
        {
            lblEmail.Visible    = true;
            lblEmailMSG.Visible = true;
            return;
        }
        else
        {
            lblEmail.Visible    = false;
            lblEmailMSG.Visible = false;
        }

        //Plant/Division Validation
        if (ddlPlant.SelectedValue == "0000")
        {
            lblPlant.Visible = true;
            return;
        }
        else
        {
            lblPlant.Visible = false;
        }

        //Department Validation
        if (ddlDepartment.SelectedValue == "000")
        {
            lblDepartment.Visible = true;
            return;
        }
        else
        {
            lblDepartment.Visible = false;
        }

        //Systems validation
        if (ddlSystem.SelectedValue == "000")
        {
            lblSystem.Visible = true;
            return;
        }
        else
        {
            lblSystem.Visible = false;
        }

        if (tblPriority.Visible == true)
        {
            //priority Validation
            if (ddlPriority.SelectedValue == "000")
            {
                lblPriority.Visible = true;
                return;
            }
            else
            {
                lblPriority.Visible = false;
            }
        }

        //Type Validation
        if (ddlType.SelectedValue == "000")
        {
            lblType.Visible = true;
            return;
        }
        else
        {
            lblType.Visible = false;
        }

        //Assigened To validation
        if (ddlAssignedTo.SelectedValue == "000")
        {
            lblAssignedTo.Visible = true;
            return;
        }
        else
        {
            lblAssignedTo.Visible = false;
        }

        //Status Validation
        if (ddlStatus.SelectedValue == "000")
        {
            lblStatus.Visible = true;
            return;
        }
        else
        {
            lblStatus.Visible = false;
        }

        //Repeat Issue Validation
        if (ddlRepeatIssue.SelectedValue == "000")
        {
            lblRepeatIssue.Visible = true;
            return;
        }
        else
        {
            lblRepeatIssue.Visible = false;
        }

        //if the table that holds the BOL # and Contact Ext is showing then format the description
        if (tbInfo.Visible == true)
        {
            //Check and verify other fields
            if (tbBOLNumber.Text.Length > 80)
            {
                lblBOLError.Visible = true;
                return;
            }

            if (tbContactExtension.Text.Length > 50)
            {
                lblContactExtentionError.Visible = true;
                return;
            }
            problem = "BOL #: " + tbBOLNumber.Text + Environment.NewLine + Environment.NewLine + "Description: " + txtProbDescription.Text + Environment.NewLine
                      + Environment.NewLine + "EXT: " + tbContactExtension.Text;
        }
        else // problem is just the one text box
        {
            problem = txtProbDescription.Text;
        }

        try
        {
            insert.TargetCompletionDate = DateTime.Parse(txtTargetCompletionDate.Text);
        }
        catch
        {
            lblTargetCompletionDate.Visible = true;
            return;
        }
        //Insert A new Ticket

        if (txtPermanentFix.Text.Trim() == "" || txtPermanentFix.Text == null)
        {
            insert.PermanentFix = null;
        }
        else
        {
            insert.PermanentFix = txtPermanentFix.Text;
        }

        if (txtImmediateFix.Text.Trim() == "" || txtImmediateFix.Text == null)
        {
            insert.ImmediateFix = null;
        }
        else
        {
            insert.ImmediateFix = txtImmediateFix.Text;
        }

        if (txtRootCause.Text.Trim() == "" || txtRootCause.Text == null)
        {
            insert.RootCause = null;
        }
        else
        {
            insert.RootCause = txtRootCause.Text;
        }


        if (ddlSkill.SelectedValue == "0000")
        {
            lblSkillError.Visible = true;
            return;
        }
        else
        {
            lblSkillError.Visible = false;
        }

        if (ddlClosed.SelectedValue == "0000")
        {
            lblClosedError.Visible = true;
            return;
        }
        else
        {
            lblClosedError.Visible = false;
        }


        insert.Issuer      = Int32.Parse(ddlEmployee.SelectedItem.Value);
        insert.Email       = txtEmail.Text;
        insert.Division    = ddlPlant.SelectedItem.Value;
        insert.Dept        = Int32.Parse(ddlDepartment.SelectedValue);
        insert.System      = Int32.Parse(ddlSystem.SelectedValue);
        insert.ProblemDesc = problem;
        insert.AssignedTo  = Int32.Parse(ddlAssignedTo.SelectedValue);

        if (tblPriority.Visible == true)
        {
            insert.Priority = Int32.Parse(ddlPriority.SelectedValue);
        }
        else
        {
            insert.Priority = 1; //High
        }
        insert.RepeatIssue = Int32.Parse(ddlRepeatIssue.SelectedValue);
        insert.IssueType   = Int32.Parse(ddlType.SelectedValue);
        insert.Status      = Int32.Parse(ddlStatus.SelectedValue);
        insert.SubSystem   = Int32.Parse(ddlSubSystem.SelectedValue);

        insert.TimeToResolve = txtTimeToResolve.Text;
        insert.Skill         = Int32.Parse(ddlSkill.SelectedValue); //int

        insert.Closed = Int32.Parse(ddlClosed.SelectedValue);


        EmployeeDAL.Insert(Int32.Parse(ddlEmployee.SelectedItem.Value), txtEmail.Text,
                           ddlPlant.SelectedItem.Value, Int32.Parse(ddlDepartment.SelectedValue), "", "", "", 1);


        int ticketID = CreateAdminTicketDAL.InsertTicket(insert);



        //Add image
        lblTicketNumber.Text = ticketID.ToString();
        ticketEntry.Visible  = false;
        Splash.Visible       = true;
        Splash.Controls.Add(new LiteralControl("<img src='images/Success.jpg'>"));
        Response.Redirect("~/Edit.aspx?ticketnumber=" + ticketID.ToString());
    }