protected void gvAssignRE_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        try
        {
            if (e.CommandName == "btnAssign")
            {
                var qry =
                    from wp in ff.WorkPackages
                    where (
                        wp.wpId == lblWPID2.Text
                        )
                    select new { wp.projId };

                int         row         = Convert.ToInt32(e.CommandArgument);
                GridViewRow selectedRow = gvAssignRE.Rows[row];

                EmployeeWorkPackage ewp = new EmployeeWorkPackage();
                ewp.empId  = Convert.ToInt32(selectedRow.Cells[0].Text);
                ewp.projId = qry.First().projId;
                ewp.wpId   = lblWPID2.Text;

                var qry2 =
                    from emp in ff.EmployeeWorkPackages
                    where (emp.projId == qry.First().projId&& emp.empId == ewp.empId)
                    select emp;
                if (qry2.ToArray().Length == 0)
                {
                    ff.EmployeeWorkPackages.InsertOnSubmit(ewp);
                }
                string username = selectedRow.Cells[1].Text + "_" + selectedRow.Cells[2].Text;
                WorkPackageResponsibleEngineer wpre = new WorkPackageResponsibleEngineer();
                wpre.projId = qry.First().projId;
                wpre.wpId   = lblWPID2.Text;
                wpre.responsibleEngineer = Convert.ToInt32(selectedRow.Cells[0].Text);
                ff.WorkPackageResponsibleEngineers.InsertOnSubmit(wpre);
                ff.SubmitChanges();
                divAssignRE.Visible = false;
                try
                {
                    Roles.AddUserToRole(username, "ResponsibleEngineer");
                }
                catch (Exception exception)
                {
                }
                populateManageWorkPackage();
            }
        }
        catch (Exception exception)
        {
            //  lblException.Text = exception.StackTrace;
        }
    }
 protected void gvEmployees_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "btnDelete")
     {
         ff.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues);
         int                 row         = Convert.ToInt32(e.CommandArgument);
         GridViewRow         selectedRow = gvEmployees.Rows[row];
         EmployeeWorkPackage empwp       = ff.EmployeeWorkPackages.Where(emp => emp.empId == (Convert.ToInt32(selectedRow.Cells[0].Text)) && emp.wpId == lblWPID2.Text).First();
         ff.EmployeeWorkPackages.DeleteOnSubmit(empwp);
         ff.SubmitChanges();
         populateManageWorkPackage();
     }
 }
 partial void DeleteEmployeeWorkPackage(EmployeeWorkPackage instance);
 partial void UpdateEmployeeWorkPackage(EmployeeWorkPackage instance);
 partial void InsertEmployeeWorkPackage(EmployeeWorkPackage instance);
	private void detach_EmployeeWorkPackages(EmployeeWorkPackage entity)
	{
		this.SendPropertyChanging();
		entity.WorkPackage = null;
	}
	private void attach_EmployeeWorkPackages(EmployeeWorkPackage entity)
	{
		this.SendPropertyChanging();
		entity.EmployeeProject = this;
	}
    protected void gvUnassignedEmployees_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        lblBudgetError.Text = "";
        try
        {
            if (parentWpID == null)
            {
                if (e.CommandName == "btnAdd")
                {
                    int                 row         = Convert.ToInt32(e.CommandArgument);
                    GridViewRow         selectedRow = gvUnassignedEmployees.Rows[row];
                    EmployeeWorkPackage ewp         = new EmployeeWorkPackage();
                    EmployeeProject     ep          = new EmployeeProject();
                    ep.projId = Convert.ToInt32(Session["projID"]);

                    ewp.projId = Convert.ToInt32(Session["projID"]);
                    ewp.wpId   = Session["wpID"].ToString();
                    ewp.empId  = Convert.ToInt32(selectedRow.Cells[1].Text);
                    ep.empId   = ewp.empId;

                    var qry =
                        from emp in ff.EmployeeWorkPackages
                        where (emp.empId == ewp.empId && emp.wpId == Session["wpID"].ToString())
                        select emp;
                    if (qry.ToArray().Length > 0)
                    {
                        lblError.Text = "Employee is already a part of the work package.";
                    }
                    else
                    {
                        var qry2 =
                            from emp in ff.EmployeeProjects
                            where (emp.projId == ep.projId && emp.empId == ep.empId)
                            select emp;
                        if (qry2.ToArray().Length == 0)
                        {
                            ff.EmployeeProjects.InsertOnSubmit(ep);
                        }
                        ff.EmployeeWorkPackages.InsertOnSubmit(ewp);
                        ff.SubmitChanges();
                        updategvEmployees();
                        lblError.Text        = "";
                        divAssignEmp.Visible = true;
                    }
                }
            }
            else
            {
                if (e.CommandName == "btnAdd")
                {
                    int                 row         = Convert.ToInt32(e.CommandArgument);
                    GridViewRow         selectedRow = gvUnassignedEmployees.Rows[row];
                    EmployeeWorkPackage ewp         = new EmployeeWorkPackage();
                    EmployeeProject     ep          = new EmployeeProject();
                    ep.projId = Convert.ToInt32(Session["projID"]);

                    ewp.projId = Convert.ToInt32(Session["projID"]);
                    ewp.wpId   = Session["wpID"].ToString();
                    ewp.empId  = Convert.ToInt32(selectedRow.Cells[1].Text);
                    ep.empId   = ewp.empId;

                    var qry =
                        from emp in ff.EmployeeWorkPackages
                        where (emp.empId == ewp.empId && emp.wpId == Session["wpID"].ToString())
                        select emp;
                    if (qry.ToArray().Length > 0)
                    {
                        lblError.Text        = "Employee is already a part of the work package.";
                        divAssignEmp.Visible = true;
                    }
                    else
                    {
                        var qry2 =
                            from emp in ff.EmployeeProjects
                            where (emp.projId == ep.projId && emp.empId == ep.empId)
                            select emp;
                        if (qry2.ToArray().Length == 0)
                        {
                            ff.EmployeeProjects.InsertOnSubmit(ep);
                        }
                        ff.EmployeeWorkPackages.InsertOnSubmit(ewp);
                        ff.SubmitChanges();
                        updategvEmployees();
                        lblError.Text = "";
                    }
                }
            }
        }
        catch (Exception exception)
        {
            //lblException.Text = exception.StackTrace;
            //lblError.Text = exception.StackTrace;
        }
    }
    protected void gvUnassignedEmployees_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        lblBudgetError.Text = "";
        try
        {
            if (parentWpID == null)
            {
                if (e.CommandName == "btnAdd")
                {
                    int row = Convert.ToInt32(e.CommandArgument);
                    GridViewRow selectedRow = gvUnassignedEmployees.Rows[row];
                    EmployeeWorkPackage ewp = new EmployeeWorkPackage();
                    EmployeeProject ep = new EmployeeProject();
                    ep.projId = Convert.ToInt32(Session["projID"]);

                    ewp.projId = Convert.ToInt32(Session["projID"]);
                    ewp.wpId = Session["wpID"].ToString();
                    ewp.empId = Convert.ToInt32(selectedRow.Cells[1].Text);
                    ep.empId = ewp.empId;

                    var qry =
                        from emp in ff.EmployeeWorkPackages
                        where (emp.empId == ewp.empId && emp.wpId == Session["wpID"].ToString())
                        select emp;
                    if (qry.ToArray().Length > 0)
                    {
                        lblError.Text = "Employee is already a part of the work package.";
                    }
                    else
                    {
                        var qry2 =
                            from emp in ff.EmployeeProjects
                            where (emp.projId == ep.projId && emp.empId == ep.empId)
                            select emp;
                        if (qry2.ToArray().Length == 0)
                            ff.EmployeeProjects.InsertOnSubmit(ep);
                        ff.EmployeeWorkPackages.InsertOnSubmit(ewp);
                        ff.SubmitChanges();
                        updategvEmployees();
                        lblError.Text = "";
                        divAssignEmp.Visible = true;
                    }
                }
            }
            else
            {
                if (e.CommandName == "btnAdd")
                {
                    int row = Convert.ToInt32(e.CommandArgument);
                    GridViewRow selectedRow = gvUnassignedEmployees.Rows[row];
                    EmployeeWorkPackage ewp = new EmployeeWorkPackage();
                    EmployeeProject ep = new EmployeeProject();
                    ep.projId = Convert.ToInt32(Session["projID"]);

                    ewp.projId = Convert.ToInt32(Session["projID"]);
                    ewp.wpId = Session["wpID"].ToString();
                    ewp.empId = Convert.ToInt32(selectedRow.Cells[1].Text);
                    ep.empId = ewp.empId;

                    var qry =
                        from emp in ff.EmployeeWorkPackages
                        where (emp.empId == ewp.empId && emp.wpId == Session["wpID"].ToString())
                        select emp;
                    if (qry.ToArray().Length > 0)
                    {
                        lblError.Text = "Employee is already a part of the work package.";
                        divAssignEmp.Visible = true;
                    }
                    else
                    {
                        var qry2 =
                            from emp in ff.EmployeeProjects
                            where (emp.projId == ep.projId && emp.empId == ep.empId)
                            select emp;
                        if (qry2.ToArray().Length == 0)
                            ff.EmployeeProjects.InsertOnSubmit(ep);
                        ff.EmployeeWorkPackages.InsertOnSubmit(ewp);
                        ff.SubmitChanges();
                        updategvEmployees();
                        lblError.Text = "";
                    }
                }
            }
        }
        catch (Exception exception)
        {
            //lblException.Text = exception.StackTrace;
            //lblError.Text = exception.StackTrace;
        }
    }
    protected void gvAssignRE_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        try
        {
            if (e.CommandName == "btnAssign")
            {
                var qry =
                    from wp in ff.WorkPackages
                    where (
                        wp.wpId == lblWPID2.Text
                    )
                    select new { wp.projId };

                int row = Convert.ToInt32(e.CommandArgument);
                GridViewRow selectedRow = gvAssignRE.Rows[row];

                EmployeeWorkPackage ewp = new EmployeeWorkPackage();
                ewp.empId = Convert.ToInt32(selectedRow.Cells[0].Text);
                ewp.projId = qry.First().projId;
                ewp.wpId = lblWPID2.Text;

                var qry2 =
                    from emp in ff.EmployeeWorkPackages
                    where (emp.projId == qry.First().projId && emp.empId == ewp.empId)
                    select emp;
                if (qry2.ToArray().Length == 0)
                {
                    ff.EmployeeWorkPackages.InsertOnSubmit(ewp);
                }
                string username = selectedRow.Cells[1].Text + "_" + selectedRow.Cells[2].Text;
                WorkPackageResponsibleEngineer wpre = new WorkPackageResponsibleEngineer();
                wpre.projId = qry.First().projId;
                wpre.wpId = lblWPID2.Text;
                wpre.responsibleEngineer = Convert.ToInt32(selectedRow.Cells[0].Text);
                ff.WorkPackageResponsibleEngineers.InsertOnSubmit(wpre);
                ff.SubmitChanges();
                divAssignRE.Visible = false;
                try
                {
                    Roles.AddUserToRole(username, "ResponsibleEngineer");
                }
                catch (Exception exception)
                {
                }
                populateManageWorkPackage();
            }
        }
        catch (Exception exception)
        {
          //  lblException.Text = exception.StackTrace;
        }
    }