using framework_business;
using framework_library;
using System;
using System.Collections;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class controls_admin_projects : System.Web.UI.UserControl
{
#region methods
/// Method to Bind User Types
///
private void BindCustomers()
{
ArrayList customers = new ArrayList();
try
{
oSetup _setup = handler.ReturnSetup();
customers = xData.GetTypedByCriteriaSpecific("recId", typeof(oCustomer), "isActive", "1", "customer", "pal_", true);
ddCustomer.DataSource = customers;
ddCustomer.DataTextField = "customer";
ddCustomer.DataValueField = "code";
ddCustomer.DataBind();
ddCustomer.SelectedValue = _setup.code;
if (_setup.code != "EVOL-1")
ddCustomer.Enabled = false;
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["profileId"]);
Response.Redirect("/error", false);
}
}
///
/// Method to Bind Project Data
///
private void BindProjectData()
{
try
{
ArrayList projectList = new ArrayList();
oSetup _setup = handler.ReturnSetup();
if (_setup.code == "EVOL-1")
projectList = xData.GetTypedByCriteriaSpecific("recId", typeof(oProject), "isActive", "1", "name", "pal_", true);
else
projectList = xData.GetTypedByCriteriaSpecific("recId", typeof(oProject), "isActive,customerCode", "1," + _setup.code, "name", "pal_", true);
rptProjects.DataSource = projectList;
rptProjects.DataBind();
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, Session["project"]);
Response.Redirect("/error", false);
}
}
private void BindCategory()
{
try
{
DataTable dt = xData.GetTypedByCriteriaSpecificTable("recId", typeof(oTaskCategory), "isActive", "1", "", "pal_", true);
ddCategory.DataSource = dt;
ddCategory.DataTextField = "taskCategory";
ddCategory.DataValueField = "recId";
ddCategory.DataBind();
}
catch (Exception ex)
{
exception.HandleException("Task:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Populate Form Values
///
///
private void PopulatePageFormValues(ref oProject _Project)
{
try
{
if (_Project.customerCode != String.Empty)
ddCustomer.SelectedValue = _Project.customerCode;
txtCode.Value = _Project.projectCode;
txtName.Value = _Project.name;
txtDescription.Value = _Project.description;
chkActive.Checked = _Project.isActive;
if (_Project.categoryId > 0)
ddCategory.SelectedValue = _Project.categoryId.ToString();
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, 0);
Response.Redirect("/error", false);
}
}
///
/// Save Form Values
///
///
private void SavePageFormValues(ref oProject _Project)
{
try
{
_Project.name = txtName.Value;
_Project.description = txtDescription.Value;
_Project.isActive = chkActive.Checked;
_Project.categoryId = int.Parse(ddCategory.SelectedValue);
_Project.customerCode = ddCustomer.SelectedValue;
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, 0);
Response.Redirect("/error", false);
}
}
///
/// Method to Toggle Panels
///
///
private void TogglePanels(string panelName)
{
switch (panelName)
{
case "pnlProjectPage":
pnlProjectPage.Visible = true;
pnlProjectList.Visible = false;
break;
case "pnlProjectList":
pnlProjectPage.Visible = false;
pnlProjectList.Visible = true;
break;
}
//clear result
pnlResult.Visible = false;
}
#endregion
#region events
///
/// Page Load Event
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!Page.IsPostBack)
{
BindCustomers();
BindProjectData();
BindCategory();
if (utils.verifySession("project"))
{
oProject project = (oProject)Session["project"];
}
}
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, Session["project"]);
Response.Redirect("/error", false);
}
}
///
/// New Project Click
///
///
///
protected void btnNewProject_Click(object sender, EventArgs e)
{
try
{
//show Content Specific
TogglePanels("pnlProjectPage");
Session["ProjectId"] = 0;
utils.disposeSession("Project");
oProject Project = new oProject();
PopulatePageFormValues(ref Project);
oSetup _setup = handler.ReturnSetup();
if (_setup.code == "EVOL-1")
ddCustomer.Enabled = true;
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, Session["project"]);
Response.Redirect("/error", false);
}
}
///
/// Edit the Project page
///
///
///
protected void lnkEdit_Click(object sender, EventArgs e)
{
oProject _Project = new oProject();
ArrayList catList = new ArrayList();
try
{
if (sender.GetType() == typeof(LinkButton))
{
//
int recId = int.Parse(((LinkButton)sender).CommandArgument);
if (recId > 0)
{
Session["ProjectId"] = recId;
//get cat
catList = xData.GetTypedByCriteriaSpecific("recId", typeof(oProject), "recId", recId.ToString(), "", "pal_", true);
//enumerate list
foreach (oProject cat in catList)
{
//assign object
_Project = cat;
//populate page form
PopulatePageFormValues(ref _Project);
ddCustomer.Enabled = false;
Session["Project"] = _Project;
break;
}
//show Project Form
TogglePanels("pnlProjectPage");
}
}
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, Session["project"]);
Response.Redirect("/error", false);
}
}
///
/// Remove the Project
///
///
///
protected void lnkRemove_Click(object sender, EventArgs e)
{
try
{
if (sender.GetType() == typeof(LinkButton))
{
//
int recId = int.Parse(((LinkButton)sender).CommandArgument);
//Delete cat
if (xData.DeleteTyped("recId", recId.ToString(), typeof(oProject), "pal_", true))
{
//rebind pages grid
BindProjectData();
pnlResult.Visible = true;
//display successful result
lblResult.Text = "the selected Project was deleted successfully.";
}
}
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, Session["project"]);
Response.Redirect("/error", false);
}
}
///
/// Cancel
///
///
///
protected void btnCancel_Click(object sender, EventArgs e)
{
try
{
Session["ProjectId"] = 0;
utils.disposeSession("Project");
BindProjectData();
//show list
TogglePanels("pnlProjectList");
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, Session["project"]);
Response.Redirect("/error", false);
}
}
///
/// Save Click
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
oProject Project = new oProject();
try
{
if (utils.verifySession("Project"))//update mode
{
Project = (oProject)Session["Project"];
//save form values
SavePageFormValues(ref Project);
Project.dateUpdated = DateTime.Now;
if (xData.UpdateTyped("recId", Project.recId.ToString(), typeof(oProject), Project, "pal_", true))
{
Session["ProjectId"] = Project.recId;
Session["Project"] = Project;
BindProjectData();
pnlResult.Visible = true;
lblResult.Text = "your changes were updated successfully.";
}
}
else
{
//save form values
SavePageFormValues(ref Project);
string prefix = String.Empty;
//create project code
if (Project.name.Length > 3)
{
prefix = Project.name.Substring(0, 4);
}
else
prefix = Project.name;
oProjectNumber projNumber = new oProjectNumber();
foreach (oProjectNumber pCode in xData.GetTypedByCriteriaSpecific("recId", typeof(oProjectNumber), "custCode,prefix", Project.customerCode + "," + prefix, "prefix", "pal_", true))
{
projNumber = pCode;
break;
}
projNumber.prefix = prefix.ToUpper();
projNumber.lastNumberUsed += 1;
projNumber.custCode = Project.customerCode;
Project.projectCode = projNumber.prefix + "-" + projNumber.lastNumberUsed;
if (!xData.VerifyExists("recId", typeof(oProject), "customerCode,projectCode", Project.customerCode + "," + Project.projectCode, "", "pal_", true))
{
if (projNumber.recId > 0)
{ xData.UpdateTyped("recId", projNumber.recId.ToString(), typeof(oProjectNumber), projNumber, "pal_", true); }
else
{ projNumber.recId = xData.SaveTyped("recId", typeof(oProjectNumber), projNumber, "pal_", true); }
//setup initial values for project
Project.dateCreated = DateTime.Now;
Project.recId = xData.SaveTyped("recId", typeof(oProject), Project, "pal_", true);
if (Project.recId > 0)
{
Session["ProjectId"] = Project.recId;
Session["Project"] = Project;
BindProjectData();
PopulatePageFormValues(ref Project);
pnlResult.Visible = true;
lblResult.Text = "the Project was created successfully.";
}
}
else
{
pnlResult.Visible = true;
lblResult.Text = "An project with this code already exists on the system";
}
}
}
catch (Exception ex)
{
exception.HandleException("Projects:", MethodBase.GetCurrentMethod().Name, ex, Session["project"]);
Response.Redirect("/error", false);
}
}
#endregion
}