using framework_business;
using framework_library;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class controls_admin_users : System.Web.UI.UserControl
{
#region methods
///
/// Method to Bind User Data
///
private void BindUserData()
{
try
{
oSetup _setup = handler.ReturnSetup();
ArrayList adminList = new ArrayList();
if (_setup.code != "EVOL-1")
adminList = xData.GetTypedByCriteriaSpecific("recId", typeof(oUser), "isActive, customerCode", "1," + _setup.code, "name", "pal_", true);
else
adminList = xData.GetTypedByCriteriaSpecific("recId", typeof(oUser), "isActive", "1", "name", "pal_", true);
rptUsers.DataSource = adminList;
rptUsers.DataBind();
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Method to Bind User Types
///
private void BindUserTypes()
{
ArrayList userTypes = new ArrayList();
try
{
userTypes = xData.GetTypedByCriteriaSpecific("recId", typeof(oUserType), "isActive", "1", "sequence");
ddUserType.DataSource = userTypes;
ddUserType.DataTextField = "userType";
ddUserType.DataValueField = "recId";
ddUserType.DataBind();
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["profileId"]);
Response.Redirect("/error", false);
}
}
///
/// 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 Modules
///
private void BindModules()
{
ArrayList modules = new ArrayList();
try
{
modules = xData.GetTypedByCriteriaSpecific("recId", typeof(oModule), "", "", "sequence");
lstModules.DataSource = modules;
lstModules.DataTextField = "module";
lstModules.DataValueField = "recId";
lstModules.DataBind();
}
catch (Exception ex)
{
exception.HandleException("Administrators:", MethodBase.GetCurrentMethod().Name, ex, Session["profileId"]);
Response.Redirect("/error", false);
}
}
///
/// Populate Form Values
///
///
private void PopulatePageFormValues(ref oUser _User)
{
try
{
txtName.Value = _User.name;
txtSurname.Value = _User.surname;
txtEmail.Value = _User.email;
txtCompanyAddress.Value = _User.addressCompany;
txtPhysical.Value = _User.addressPhysical;
txtPostal.Value = _User.addressPostal;
txtCompanyName.Value = _User.company;
txtIDNumber.Value = _User.idNumber;
txtVATNumber.Value = _User.vatNum;
if (_User.userType > 0)
ddUserType.SelectedValue = _User.userType.ToString();
if (_User.customerCode != String.Empty)
ddCustomer.SelectedValue = _User.customerCode;
txtTel.Value = _User.tel;
chkActive.Checked = _User.isActive;
chkTerms.Checked = _User.isTermsAccepted;
encryption encrypt = new encryption("p@l3tt3");
if (_User.password != String.Empty)
txtPassword.Value = encrypt.decryptData(_User.password);
chkActive.Checked = _User.isActive;
if (_User.birthDate.Year > 1901)
txbBirthDate.Text = _User.birthDate.ToString("dd/MM/yyyy");
chkIsSetup.Checked = _User.isSetup;
if (_User.userType == pNums.UserType.AdminUser.GetHashCode())
{
divModules.Visible = true;
chkIsSetup.Visible = true;
//populate modules
lstModules.ClearSelection();
string[] modules = _User.modules.Split(char.Parse(","));
foreach (String mod in modules)
{
foreach (ListItem item in lstModules.Items)
{
if (item.Value == mod)
{
item.Selected = true;
break;
}
}
}
}
else
{ divModules.Visible = false; chkIsSetup.Visible = false; }
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, 0);
Response.Redirect("/error", false);
}
}
///
/// Save Form Values
///
///
private void SavePageFormValues(ref oUser _User)
{
try
{
_User.name = txtName.Value;
_User.surname = txtSurname.Value;
_User.email = txtEmail.Value;
_User.addressCompany = txtCompanyAddress.Value;
_User.addressPhysical = txtPhysical.Value;
_User.addressPostal = txtPostal.Value;
_User.company = txtCompanyName.Value;
_User.idNumber = txtIDNumber.Value;
_User.vatNum = txtVATNumber.Value;
_User.userType = int.Parse(ddUserType.SelectedValue);
_User.customerCode = ddCustomer.SelectedValue;
_User.tel = txtTel.Value;
_User.isActive = chkActive.Checked;
_User.isTermsAccepted = chkTerms.Checked;
encryption encrypt = new encryption("p@l3tt3");
_User.password = encrypt.encryptValue(txtPassword.Value);
_User.birthDate = utils.formatStringToDate(txbBirthDate.Text);
_User.isSetup = chkIsSetup.Checked;
if (_User.userType == pNums.UserType.AdminUser.GetHashCode())
{
_User.modules = String.Empty;
//save modules
foreach (ListItem item in lstModules.Items)
{
if (item.Selected)
{
if (_User.modules == String.Empty)
{ _User.modules = item.Value.ToString(); }
else
{ _User.modules += "," + item.Value; }
}
}
}
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, 0);
Response.Redirect("/error", false);
}
}
///
/// Method to Toggle Panels
///
///
private void TogglePanels(string panelName)
{
switch (panelName)
{
case "pnlUserPage":
pnlUserPage.Visible = true;
pnlUserList.Visible = false;
break;
case "pnlUserList":
pnlUserPage.Visible = false;
pnlUserList.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)
{
BindUserData();
txtEmail.Disabled = false;
BindUserTypes();
BindCustomers();
BindModules();
divModules.Visible = false;
chkIsSetup.Visible = false;
}
if (ddUserType.SelectedValue != null && ddUserType.SelectedValue == pNums.UserType.AdminUser.GetHashCode().ToString())
{
divModules.Visible = true;
chkIsSetup.Visible = true;
}
else
{
divModules.Visible = false;
chkIsSetup.Visible = false;
}
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// New User Click
///
///
///
protected void btnNewUser_Click(object sender, EventArgs e)
{
try
{
//show Content Specific
TogglePanels("pnlUserPage");
Session["uid"] = 0;
utils.disposeSession("usr");
oUser User = new oUser();
PopulatePageFormValues(ref User);
txtEmail.Disabled = false;
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Edit the User page
///
///
///
protected void lnkEdit_Click(object sender, EventArgs e)
{
oUser _User = new oUser();
ArrayList usrList = new ArrayList();
try
{
if (sender.GetType() == typeof(LinkButton))
{
//
int recId = int.Parse(((LinkButton)sender).CommandArgument);
if (recId > 0)
{
Session["uid"] = recId;
//get user
usrList = xData.GetTypedByCriteriaSpecific("recId", typeof(oUser), "recId", recId.ToString(), "", "pal_", true);
//enumerate list
foreach (oUser usr in usrList)
{
//assign object
_User = usr;
//populate page form
PopulatePageFormValues(ref _User);
txtEmail.Disabled = true;
Session["usr"] = _User;
break;
}
//show User Form
TogglePanels("pnlUserPage");
}
}
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Remove the User
///
///
///
protected void lnkRemove_Click(object sender, EventArgs e)
{
try
{
if (sender.GetType() == typeof(LinkButton))
{
//
int recId = int.Parse(((LinkButton)sender).CommandArgument);
//Delete user
if (xData.DeleteTyped("recId", recId.ToString(), typeof(oUser), "pal_", true))
{
//rebind pages grid
BindUserData();
pnlResult.Visible = true;
//display successful result
lblResult.Text = "the selected user was deleted successfully.";
}
}
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Cancel
///
///
///
protected void btnCancel_Click(object sender, EventArgs e)
{
try
{
Session["uid"] = 0;
utils.disposeSession("usr");
BindUserData();
//show cat list
TogglePanels("pnlUserList");
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
///
/// Save Click
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
oUser User = new oUser();
try
{
if (utils.verifySession("usr"))//update mode
{
User = (oUser)Session["usr"];
//save form values
SavePageFormValues(ref User);
User.dateUpdated = DateTime.Now;
if (xData.UpdateTyped("recId", User.recId.ToString(), typeof(oUser), User, "pal_", true))
{
Session["uid"] = User.recId;
Session["usr"] = User;
BindUserData();
pnlResult.Visible = true;
lblResult.Text = "your changes were updated successfully.";
}
}
else
{
if (!xData.VerifyExists("recId", typeof(oUser), "email,customerCode", txtEmail.Value + "," + ddCustomer.SelectedValue, "", "pal_", true))
{
User.dateCreated = DateTime.Now;
//save form values
SavePageFormValues(ref User);
User.recId = xData.SaveTyped("recId", typeof(oUser), User, "pal_", true);
if (User.recId > 0)
{
Session["uid"] = User.recId;
Session["usr"] = User;
BindUserData();
pnlResult.Visible = true;
lblResult.Text = "your user was created successfully.";
}
}
else
{
pnlResult.Visible = true;
lblResult.Text = "An user with this email already exists on the system";
}
}
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
#endregion
///
/// Selectwed Index Change dEvent
///
///
///
protected void ddUserType_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (ddUserType.SelectedValue == pNums.UserType.AdminUser.GetHashCode().ToString())
{
divModules.Visible = true;
chkIsSetup.Visible = true;
}
else
{
divModules.Visible = false;
chkIsSetup.Visible = false;
}
}
catch (Exception ex)
{
exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
}