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(); ArrayList mimicTypes = xData.GetTypedByCriteriaSpecific("recId", typeof(oUserType), "isActive,recId", "1,~<"+(int)pNums.UserType.AdminUser, "sequence"); ddMimicUser.DataSource = mimicTypes; ddMimicUser.DataTextField = "userType"; ddMimicUser.DataValueField = "recId"; ddMimicUser.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.mimicUserType > 0) ddMimicUser.SelectedValue = _User.mimicUserType.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.mimicUserType = int.Parse(ddMimicUser.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 { if (ddUserType.SelectedValue == pNums.UserType.CustomUser.GetHashCode().ToString()) divMimic.Visible = true; divModules.Visible = false; chkIsSetup.Visible = false; } upUsers.Update(); } 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(); User.isActive = true; 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 { if (ddUserType.SelectedValue == pNums.UserType.CustomUser.GetHashCode().ToString()) divMimic.Visible = true; divModules.Visible = false; chkIsSetup.Visible = false; } upUsers.Update(); } catch (Exception ex) { exception.HandleException("Users:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } }