/// <summary>
        /// Binds the active directory settings.
        /// </summary>
        private void BindActiveDirectorySettings()
        {
            DataTable dataTableADSettings = ApplicationSettings.ProvideActiveDirectorySettings();

            if (dataTableADSettings.Rows.Count > 0)
            {
                for (int row = 0; row < dataTableADSettings.Rows.Count; row++)
                {
                    string value = dataTableADSettings.Rows[row]["AD_SETTING_VALUE"].ToString();
                    switch (dataTableADSettings.Rows[row]["AD_SETTING_KEY"].ToString())
                    {
                    case Constants.AD_SETTINGKEY_DOMAINCONTROLLER:
                        TextBoxDomainController.Text = value;
                        oldDomainController          = value;
                        break;

                    case Constants.AD_SETTINGKEY_DOMAIN_NAME:
                        TextBoxDomainName.Text = value;
                        oldDomainName          = value;
                        break;

                    case Constants.AD_SETTINGKEY_AD_USERNAME:
                        TextBoxUserName.Text = value;
                        oldDomainUserName    = value;
                        break;

                    case Constants.AD_SETTINGKEY_AD_PASSWORD:
                        string password = value;
                        if (!string.IsNullOrEmpty(password))
                        {
                            password = Protector.ProvideDecryptedPassword(password);
                        }
                        TextBoxPassword.Attributes.Add("value", password);
                        oldDomainUserPassword = password;
                        break;

                    case Constants.AD_SETTINGKEY_AD_PORT:
                        TextBoxPort.Text = value;
                        oldDomainPort    = value;
                        break;

                    case Constants.AD_SETTINGKEY_AD_FULLNAME:
                        DropDownListFullName.SelectedValue = value;
                        oldDomainNameAttribute             = value;
                        break;

                    default:
                        break;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void BindSMTPSettings()
        {
            DbDataReader drSMTPSettings = DataManager.Provider.Users.ProvideSMTPsettings();

            try
            {
                if (drSMTPSettings.HasRows)
                {
                    while (drSMTPSettings.Read())
                    {
                        TextBoxFromAddress.Text     = drSMTPSettings["FROM_ADDRESS"] as string;
                        TextBoxCCAddress.Text       = drSMTPSettings["CC_ADDRESS"] as string;
                        TextBoxBCCAddress.Text      = drSMTPSettings["BCC_ADDRESS"] as string;
                        TextBoxServerIpAddress.Text = drSMTPSettings["SMTP_HOST"] as string;
                        TextBoxPortNumber.Text      = drSMTPSettings["SMTP_PORT"].ToString();
                        TextBoxDomainName.Text      = drSMTPSettings["DOMAIN_NAME"] as string;
                        TextBoxUserName.Text        = drSMTPSettings["USERNAME"] as string;
                        HiddenFieldValue.Value      = drSMTPSettings["REC_SYS_ID"].ToString();
                        string userPassword = Convert.ToString(drSMTPSettings["PASSWORD"]);

                        if (!string.IsNullOrEmpty(userPassword))
                        {
                            userPassword = Protector.ProvideDecryptedPassword(userPassword);
                        }
                        TextBoxPassword.Attributes.Add("value", userPassword);
                        string EmailSSL = Convert.ToString(drSMTPSettings["REQUIRE_SSL"], CultureInfo.CurrentCulture);
                        if (!string.IsNullOrEmpty(EmailSSL))
                        {
                            bool isRequireSSL = bool.Parse(EmailSSL);
                            CheckBoxRequireSSL.Checked = isRequireSSL;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
        /// <summary>
        /// Edits the cost centers.
        /// </summary>
        /// <param name="editvalue">The editvalue.</param>
        /// <remarks></remarks>
        private void EditDomainDetails(string editvalue)
        {
            activeDirectorySelectedValue = "EDIT";
            string domainName = Request.Form["__ADNAME"];

            if (editvalue == "EDIT")
            {
                EditActiveDirectoryValue = domainName;
                editingDevID             = domainName;
            }
            if (editvalue == "RESET")
            {
                domainName   = EditActiveDirectoryValue;
                editingDevID = EditActiveDirectoryValue;
            }

            DataSet dsActiveDirectoryDetails = DataManager.Provider.Settings.ProvideADDetails(domainName);

            for (int itemIndex = 0; itemIndex < dsActiveDirectoryDetails.Tables[0].Rows.Count; itemIndex++)
            {
                string appSettingsKey = dsActiveDirectoryDetails.Tables[0].Rows[itemIndex]["AD_SETTING_KEY"].ToString();
                string value          = dsActiveDirectoryDetails.Tables[0].Rows[itemIndex]["AD_SETTING_VALUE"].ToString();
                switch (appSettingsKey)
                {
                case Constants.AD_SETTINGKEY_DOMAINCONTROLLER:
                    TextBoxDomainController.Text = value;
                    oldDomainController          = value;
                    break;

                case Constants.AD_SETTINGKEY_DOMAIN_NAME:
                    TextBoxDomainName.Text    = value;
                    oldDomainName             = value;
                    TextBoxDomainName.Enabled = false;
                    break;

                case "AD_ALIAS":
                    TextBoxDomainAlias.Text = value;
                    oldDomainAlias          = value;
                    break;

                case Constants.AD_SETTINGKEY_AD_USERNAME:
                    TextBoxUserName.Text = value;
                    oldDomainUserName    = value;
                    break;

                case Constants.AD_SETTINGKEY_AD_PASSWORD:
                    string password = value;
                    if (!string.IsNullOrEmpty(password))
                    {
                        password = Protector.ProvideDecryptedPassword(password);
                    }
                    TextBoxPassword.Attributes.Add("value", password);
                    oldDomainUserPassword = password;
                    break;

                case Constants.AD_SETTINGKEY_AD_PORT:
                    TextBoxPort.Text = value;
                    oldDomainPort    = value;
                    break;

                case Constants.AD_SETTINGKEY_AD_FULLNAME:
                    DropDownListFullName.SelectedValue = value;
                    oldDomainNameAttribute             = value;
                    break;

                default:
                    break;
                }
            }
        }
        /*
         * /// <summary>
         * /// Transfers the file.
         * /// </summary>
         * /// <param name="jobName">Name of the job.</param>
         * private void TransferFile_Old(string jobName)
         * {
         *  string AUDITORSOURCE = "Print Job Status";
         *
         *  string ftpIPAddress = deviceIPAddress;
         *  // Assign default values to the Ftp settings
         *  string ftpProtocol = string.Empty;
         *  string ftpPort = string.Empty;
         *  string ftpUserName = string.Empty;
         *  string ftpUserPassword = string.Empty;
         *  string userSource = Session["UserSource"] as string;
         *  string userId = Session["UserID"] as string;
         *
         *  try
         *  {
         *      // Get settings for FTP from Database based on MFP IP address
         *      DbDataReader drMfpDetails = DataManagerDevice.ProviderDevice.Device.ProvideDeviceDetails(ftpIPAddress);
         *
         *      // Assign the Database values
         *      if (drMfpDetails.HasRows)
         *      {
         *          drMfpDetails.Read();
         *          ftpProtocol = drMfpDetails["FTP_PROTOCOL"].ToString().ToLower();
         *          ftpIPAddress = drMfpDetails["FTP_ADDRESS"].ToString();
         *          ftpPort = drMfpDetails["FTP_PORT"].ToString();
         *          ftpUserName = drMfpDetails["FTP_USER_ID"].ToString();
         *          ftpUserPassword = drMfpDetails["FTP_USER_PASSWORD"].ToString();
         *          if (!string.IsNullOrEmpty(ftpUserPassword))
         *          {
         *              ftpUserPassword = Protector.ProvideDecryptedPassword(ftpUserPassword);
         *          }
         *      }
         *      if (drMfpDetails != null && drMfpDetails.IsClosed == false)
         *      {
         *          drMfpDetails.Close();
         *      }
         *
         *      if (string.IsNullOrEmpty(ftpProtocol))
         *      {
         *          ftpProtocol = "ftp";
         *      }
         *      if (string.IsNullOrEmpty(ftpIPAddress))
         *      {
         *          ftpIPAddress = Request.Params["REMOTE_ADDR"].ToString();
         *      }
         *      if (string.IsNullOrEmpty(ftpPort))
         *      {
         *          ftpPort = ConfigurationManager.AppSettings["MFPFTPPort"];
         *      }
         *
         *      string printJobsLocation = ConfigurationSettings.AppSettings["PrintJobsLocation"];
         *      printJobsLocation = Path.Combine(printJobsLocation, userSource);
         *      printJobsLocation = Path.Combine(printJobsLocation, userId);
         *      printJobsLocation = Path.Combine(printJobsLocation, jobName);
         *
         *      string FTPAddress = string.Format("{0}://{1}:{2}", ftpProtocol, ftpIPAddress, ftpPort);
         *
         *      FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(FTPAddress + "/" + Path.GetFileName(jobName));
         *      request.Method = WebRequestMethods.Ftp.UploadFile;
         *      if (!string.IsNullOrEmpty(ftpUserName))
         *      {
         *          request.Credentials = new NetworkCredential(ftpUserName, ftpUserPassword);
         *      }
         *      request.UsePassive = true;
         *      request.UseBinary = true;
         *      request.KeepAlive = false;
         *
         *      //FileStream stream = File.OpenRead(printJobsLocation);
         *      //byte[] buffer = new byte[stream.Length];
         *
         *      //stream.Read(buffer, 0, buffer.Length);
         *      //stream.Close();
         *      string finalSettingsPath = ProvidePrintedFile(userId, jobName);
         *
         *      FileInfo fileNew = new FileInfo(finalSettingsPath);
         *      long fileSize = fileNew.Length;
         *      bool isDeleteFile = false;
         *
         *      if (File.Exists(finalSettingsPath))
         *      {
         *          if (Session["IsSettingChanged"] != null)
         *          {
         *              if (Session["IsSettingChanged"] == "Yes")
         *              {
         *                  isDeleteFile = true;
         *                  //File.Delete(finalSettingsPath);
         *              }
         *          }
         *      }
         *
         *      if (Session["deleteJobs"] != null)
         *      {
         *          isDeleteFile = true;
         *      }
         *
         *      int maxFileSize = Convert.ToInt32(ConfigurationSettings.AppSettings["BigPrintJobMinSize"]);
         *      if (fileSize > maxFileSize * 1024 * 1024)
         *      {
         *          DataManagerDevice.Controller.Jobs.QueueForFTPPrinting(finalSettingsPath, FTPAddress + "/" + Path.GetFileName(jobName), ftpUserName, ftpUserPassword, isDeleteFile);
         *      }
         *      else
         *      {
         *          DateTime dtJobReleaseStart = DateTime.Now;
         *          FtpHelper.UploadFile(finalSettingsPath, FTPAddress + "/" + Path.GetFileName(jobName), ftpUserName, ftpUserPassword, isDeleteFile);
         *          if (isDeleteFile == true)
         *          {
         *              DeleteJobData(finalSettingsPath);
         *          }
         *          DateTime dtJobReleaseEnd = DateTime.Now;
         *          DataManagerDevice.Controller.Jobs.UpdateJobReleaseTimings(finalSettingsPath.Replace("_PDFinal", "_PD"), dtJobReleaseStart, dtJobReleaseEnd);
         *      }
         *
         *      string auditorSuccessMessage = string.Format("Print jobs succesfully submitted to the device {0} by {1}", deviceIPAddress, userId);
         *      LogManager.RecordMessage(deviceIPAddress, AUDITORSOURCE, LogManager.MessageType.Success, auditorSuccessMessage);
         *  }
         *  catch (Exception ex)
         *  {
         *      string auditorFailureMessage = string.Format("Failed to submit print data to the device {0} by {1} ", deviceIPAddress, userId);
         *      string suggestionMessage = "Report to administrator";
         *      LogManager.RecordMessage(deviceIPAddress, AUDITORSOURCE, LogManager.MessageType.Exception, auditorFailureMessage, suggestionMessage, ex.Message, ex.StackTrace);
         *  }
         *
         *  // Delete Job Data
         *  try
         *  {
         *      //Stream reqStream = request.GetRequestStream();
         *      //reqStream.Write(buffer, 0, buffer.Length);
         *      //reqStream.Close();
         *      if (Session["deleteJobs"] != null)
         *      {
         *          DeleteJobData(jobName);
         *      }
         *  }
         *  catch (Exception exceptionDeleteJobs)
         *  {
         *      string auditorFailureMessage = string.Format("Failed to delete job - {0}", jobName);
         *      string suggestionMessage = "Report to administrator";
         *      LogManager.RecordMessage(deviceIPAddress, AUDITORSOURCE, LogManager.MessageType.Exception, auditorFailureMessage, suggestionMessage, exceptionDeleteJobs.Message, exceptionDeleteJobs.StackTrace);
         *  }
         * }
         */
        #endregion

        private void TransferFile(string jobName, DataSet dsDevices, DataTable dtPrintJobs, int rowCount)
        {
            string AUDITORSOURCE          = "Print Job Status";
            string quickReleaseSmallFiles = DataManagerDevice.ProviderDevice.ApplicationSettings.ProvideQuickReleaseSmallFiles();

            if (string.IsNullOrEmpty(quickReleaseSmallFiles))
            {
                quickReleaseSmallFiles = "Enable";
            }
            string ftpIPAddress = deviceIPAddress;
            // Assign default values to the Ftp settings
            string ftpProtocol     = string.Empty;
            string ftpPort         = string.Empty;
            string ftpUserName     = string.Empty;
            string ftpUserPassword = string.Empty;

            try
            {
                if (dsDevices != null && dsDevices.Tables.Count > 0)
                {
                    DataRow[] drDeviceDetails = dsDevices.Tables[0].Select(string.Format("MFP_IP='{0}'", ftpIPAddress));
                    if (drDeviceDetails != null && drDeviceDetails.Length > 0)
                    {
                        ftpProtocol     = drDeviceDetails[0]["FTP_PROTOCOL"].ToString().ToLower();
                        ftpIPAddress    = drDeviceDetails[0]["FTP_ADDRESS"].ToString();
                        ftpPort         = drDeviceDetails[0]["FTP_PORT"].ToString();
                        ftpUserName     = drDeviceDetails[0]["FTP_USER_ID"].ToString();
                        ftpUserPassword = drDeviceDetails[0]["FTP_USER_PASSWORD"].ToString();
                        if (!string.IsNullOrEmpty(ftpUserPassword))
                        {
                            ftpUserPassword = Protector.ProvideDecryptedPassword(ftpUserPassword);
                        }
                    }
                }

                if (string.IsNullOrEmpty(ftpProtocol))
                {
                    ftpProtocol = "ftp";
                }
                if (string.IsNullOrEmpty(ftpIPAddress))
                {
                    ftpIPAddress = Request.Params["REMOTE_ADDR"].ToString();
                }
                if (string.IsNullOrEmpty(ftpPort))
                {
                    ftpPort = ConfigurationManager.AppSettings["MFPFTPPort"];
                }

                string printJobsLocation = ConfigurationManager.AppSettings["PrintJobsLocation"];
                string currentUserSource = userSource;
                if (currentUserSource == "DM")
                {
                    currentUserSource = "AD";
                }
                printJobsLocation = Path.Combine(printJobsLocation, currentUserSource);
                if (userSource == "AD")
                {
                    printJobsLocation = Path.Combine(printJobsLocation, domainName);
                }

                printJobsLocation = Path.Combine(printJobsLocation, userId);
                printJobsLocation = Path.Combine(printJobsLocation, jobName);

                string FTPAddress = string.Format("{0}://{1}:{2}", ftpProtocol, ftpIPAddress, ftpPort);

                FileInfo fileNew      = new FileInfo(printJobsLocation);
                long     jobFileSize  = fileNew.Length;
                bool     isDeleteFile = false;

                if (File.Exists(printJobsLocation))
                {
                    if (Session["IsSettingChanged"] != null)
                    {
                        if (Session["IsSettingChanged"] as string == "Yes")
                        {
                            isDeleteFile = true;
                        }
                    }
                }

                if (Session["deleteJobs"] != null)
                {
                    isDeleteFile = true;
                }

                string fileName = Path.GetFileName(jobName);

                if (fileName.Length >= 25)
                {
                    fileName = fileName.Substring(0, 25) + ".prn";
                }

                int maxFileSize = Convert.ToInt32(ConfigurationManager.AppSettings["BigPrintJobMinSize"]);

                string serviceName = "AccountingPlusPrimaryJobReleaser";

                int megaByte = 1024 * 1024;
                if (quickReleaseSmallFiles == "Enable")
                {
                    if (jobFileSize <= 10 * megaByte)
                    {
                        serviceName = "AccountingPlusPrimaryJobReleaser";
                    }
                    else if (jobFileSize > 10 * megaByte && jobFileSize <= 200 * megaByte)
                    {
                        serviceName = "AccountingPlusSecondaryJobReleaser";
                    }
                    else
                    {
                        serviceName = "AccountingPlusTertiaryJobReleaser";
                    }
                }
                else
                {
                    serviceName = "AccountingPlusPrimaryJobReleaser";
                }

                DataTable printSettings = Session["NewPrintSettings"] as DataTable;

                if (jobFileSize <= 1 * megaByte && printSettings == null && quickReleaseSmallFiles == "Enable")
                {
                    try
                    {
                        FtpHelper.UploadFile(printJobsLocation, FTPAddress + "/" + fileName, ftpUserName, ftpUserPassword, isDeleteFile);
                    }
                    catch (Exception ex)
                    {
                        string auditorFailureMessage = string.Format("Failed to submit print data(size = {2} bytes) to the device {0} by {1} ", deviceIPAddress, userId, jobFileSize);
                        string suggestionMessage     = "Report to administrator";
                        LogManager.RecordMessage(deviceIPAddress, AUDITORSOURCE, LogManager.MessageType.Exception, auditorFailureMessage, suggestionMessage, ex.Message, ex.StackTrace);
                    }
                }
                else
                {
                    string originalPrintSettings = "";
                    string newPrintSettings      = "";

                    bool isReleaseWithNewSettings = false;

                    if (printSettings != null)
                    {
                        printSettings.TableName  = "JobSettings";
                        isReleaseWithNewSettings = true;
                        newPrintSettings         = DataTableToXML(printSettings);
                    }


                    string deleteFile = "false";
                    if (isDeleteFile)
                    {
                        deleteFile = "true";
                    }

                    string releaseWithSettings = "false";
                    if (isReleaseWithNewSettings)
                    {
                        releaseWithSettings = "true";
                    }

                    string isSettingsChanged = "true";

                    if (!string.IsNullOrEmpty(originalPrintSettings))
                    {
                        originalPrintSettings = originalPrintSettings.Replace("'", "''");
                    }

                    if (!string.IsNullOrEmpty(newPrintSettings))
                    {
                        newPrintSettings = newPrintSettings.Replace("'", "''");
                    }

                    string currentDate          = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss");
                    string newJobName           = jobName.Replace("'", "''");
                    string newPrintJobsLocation = printJobsLocation.Replace("'", "''");
                    string ftpPath            = FTPAddress + "/" + fileName;
                    string newFtpUserName     = ftpUserName.Replace("'", "''");
                    string newFtpUserPassword = ftpUserPassword.Replace("'", "''");
                    string mfpIpAddress       = ftpIPAddress;
                    dtPrintJobs.Rows.Add(rowCount, serviceName, userSource, userId, newJobName, newPrintJobsLocation, jobFileSize.ToString(), originalPrintSettings, newPrintSettings, isSettingsChanged, releaseWithSettings, ftpPath, newFtpUserName, newFtpUserPassword, "False", isDeleteFile, "False", "", "", "", currentDate, domainName, mfpIpAddress, currentDate);
                }
            }
            catch (Exception ex)
            {
                string auditorFailureMessage = string.Format("Failed to submit print data to the device {0} by {1} ", deviceIPAddress, userId);
                string suggestionMessage     = "Report to administrator";
                LogManager.RecordMessage(deviceIPAddress, AUDITORSOURCE, LogManager.MessageType.Exception, auditorFailureMessage, suggestionMessage, ex.Message, ex.StackTrace);
            }
        }
    /// <summary>
    /// Gets the setting.
    /// </summary>
    /// <param name="AppsetngCategorey">Appsetng categorey.</param>
    /// <remarks>
    /// Sequence Diagram:<br/>
    ///     <img src="SequenceDiagrams/SD_AdministrationManageSettings.GetSetting.jpg"/>
    /// </remarks>
    private void GetSetting(string AppsetngCategorey)
    {
        DataSet dssettingtype = ApplicationSettings.ProvideGeneralSettings(AppsetngCategorey);

        HiddenFieldSettingType.Value = Convert.ToString(dssettingtype.Tables[0].Rows.Count, CultureInfo.CurrentCulture);
        string ResourceIds = string.Empty;

        for (int row = 0; row < dssettingtype.Tables[0].Rows.Count; row++)
        {
            ResourceIds += dssettingtype.Tables[0].Rows[row]["APPSETNG_RESX_ID"].ToString() + ",";
        }
        ResourceIds += "UPDATE,RESET,GENERAL_SETTINGS,AUTO_LOGIN,APPLICATION_SESSION_TIMEOUT,AUTOLOGIN_TIMEOUT";

        Hashtable localizedResources = LocalizeThisPage(ResourceIds);

        for (int row = 0; row < dssettingtype.Tables[0].Rows.Count; row++)
        {
            TableRow trsettingvalue = new TableRow();

            trsettingvalue.Height          = 30;
            trsettingvalue.HorizontalAlign = HorizontalAlign.Left;
            TableCell tdSlNo = new TableCell();
            tdSlNo.HorizontalAlign = HorizontalAlign.Left;

            tdSlNo.Text = Convert.ToString((row + 1), CultureInfo.CurrentCulture);
            string settingKey = dssettingtype.Tables[0].Rows[row]["APPSETNG_KEY"].ToString();

            TableCell tdsettingtype = new TableCell();
            tdsettingtype.Text            = localizedResources["L_" + dssettingtype.Tables[0].Rows[row]["APPSETNG_RESX_ID"].ToString()] as string;
            tdsettingtype.HorizontalAlign = HorizontalAlign.Right;
            tdsettingtype.Font.Bold       = true;
            //trsettingvalue.ToolTip = settingKey;
            trsettingvalue.CssClass = "Normal_FontLabel";//Normal_FontLabel

            string settingvalue = dssettingtype.Tables[0].Rows[row]["APPSETNG_VALUE"].ToString();

            if (settingKey == "AD Password")
            {
                settingvalue = Protector.ProvideDecryptedPassword(settingvalue);
            }
            string settingvaluelength = "50";

            TableCell tdsettingvalue = new TableCell();

            tdsettingvalue.Text = "<input type='hidden' name='__SETTINGKEY_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value='" + settingKey + "'>";

            string defaultOptions      = dssettingtype.Tables[0].Rows[row]["ADS_LIST"].ToString();
            string defaultOptionValues = dssettingtype.Tables[0].Rows[row]["ADS_LIST_VALUES"].ToString();
            string defaultValue        = dssettingtype.Tables[0].Rows[row]["ADS_DEF_VALUE"].ToString();

            string[] defaultOptionsArray      = defaultOptions.Split(",;".ToCharArray());
            string[] defaultOptionValuesArray = defaultOptionValues.Split(",;".ToCharArray());

            string controlType     = dssettingtype.Tables[0].Rows[row]["CONTROL_TYPE"] as string;
            string htmlControlText = "";

            if (!string.IsNullOrEmpty(settingvalue))
            {
                defaultValue = settingvalue;
            }

            switch (controlType)
            {
            case Constants.CONTROLTYPE_TEXTBOX:
                htmlControlText = "<input style='width:200px' type=text onKeypress='if (event.keyCode==34 || event.keyCode==39) event.returnValue = false;' oncontextmenu='return false' oncopy='return false' onpaste='return false' name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value ='" + Convert.ToString(settingvalue, CultureInfo.CurrentCulture) + "' size='" + settingvaluelength + "' maxlength='50'> ";
                break;

            case Constants.CONTROLTYPE_PASSWORD:
                htmlControlText = "<input style='width:200px' type=password onKeypress='if (event.keyCode==34 || event.keyCode==39) event.returnValue = false;' oncontextmenu='return false' oncopy='return false' onpaste='return false' name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value ='" + Convert.ToString(settingvalue, CultureInfo.CurrentCulture) + "' size='" + settingvaluelength + "' maxlength='50'> ";
                break;

            case Constants.CONTROLTYPE_CHECKBOX:

                for (int item = 0; item < defaultOptionsArray.Length; item++)
                {
                    if (defaultValue.IndexOf(defaultOptionsArray[item].Trim(), StringComparison.OrdinalIgnoreCase) >= 0)
                    {
                        htmlControlText += "<input type='checkbox' checked=true name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value ='" + defaultOptionsArray[item] + "' />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                    }
                    else
                    {
                        htmlControlText += "<input type='checkbox' name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value ='" + defaultOptionsArray[item] + "'  />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                    }
                }
                break;
                //Future Use
                #region Absolute
                //case "CHECKBOX":

                //    for (int item = 0; item < defaultOptionsArray.Length; item++)
                //    {
                //        if (defaultValue.IndexOf(defaultOptionsArray[item].Trim()) >= 0)
                //        {
                //            if (dssettingtype.Tables[0].Rows[row]["APPSETNG_VALUE"].ToString() == "")
                //            {
                //                if (dssettingtype.Tables[0].Rows[row]["ADS_DEF_VALUE"].ToString() == "0")
                //                {
                //                    htmlControlText += "<input type='checkbox'  name='__SETTINGVALUE_" + (row + 1).ToString() + "' value ='" + defaultOptionsArray[item] + "' />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                //                }
                //                else
                //                    htmlControlText += "<input type='checkbox' checked=true name='__SETTINGVALUE_" + (row + 1).ToString() + "' value ='" + defaultOptionsArray[item] + "' />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                //            }
                //            else
                //            {

                //                if (dssettingtype.Tables[0].Rows[row]["APPSETNG_VALUE"].ToString() == "0")
                //                {
                //                    htmlControlText += "<input type='checkbox'  name='__SETTINGVALUE_" + (row + 1).ToString() + "' value ='" + defaultOptionsArray[item] + "' />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                //                }
                //                else
                //                    htmlControlText += "<input type='checkbox' checked=true name='__SETTINGVALUE_" + (row + 1).ToString() + "' value ='" + defaultOptionsArray[item] + "' />&nbsp;" + defaultOptionsArray[item] + "<br/>";

                //            }

                //           // htmlControlText += "<input type='checkbox' checked=true name='__SETTINGVALUE_" + (row + 1).ToString() + "' value ='" + defaultOptionsArray[item] + "' />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                //        }
                //        else
                //        {
                //            htmlControlText += "<input type='checkbox' name='__SETTINGVALUE_" + (row + 1).ToString() + "' value ='" + defaultOptionsArray[item] + "'  />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                //        }

                //    }
                // break;
                #endregion
            case Constants.CONTROLTYPE_RADIO:
                for (int item = 0; item < defaultOptionsArray.Length; item++)
                {
                    if (defaultOptionsArray[item] == defaultValue)
                    {
                        htmlControlText += "<input type='radio' checked=true groupname='grp_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value ='" + defaultOptionsArray[item] + "'  />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                    }
                    else
                    {
                        htmlControlText += "<input type='radio' groupname='grp_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value ='" + defaultOptionsArray[item] + "'  />&nbsp;" + defaultOptionsArray[item] + "<br/>";
                    }
                }
                break;

            case Constants.CONTROLTYPE_DROPDOWN:

                string    options          = defaultOptions.ToUpper().Replace(" ", "_");
                Hashtable localizedOptions = AppLibrary.Localization.Resources("", Session["selectedCulture"] as string, options, "", "");
                localizedOptions["L_LOGIN_FOR_ACCOUNTINGPLUS_ONLY"] = "Login for AccountingPlus only";
                htmlControlText = "<select class='Dropdown_CSS'  name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "'>";
                for (int item = 0; item < defaultOptionsArray.Length; item++)
                {
                    string key = "L_" + defaultOptionsArray[item].ToUpper().Replace(" ", "_");
                    if (settingKey == "Time out")
                    {
                        key = defaultOptionsArray[item].ToUpper().Replace(" ", "_");
                        //TODO:: Below line Has to be removed once localized this string
                        tdsettingtype.Text = localizedResources["L_APPLICATION_SESSION_TIMEOUT"].ToString();    //"Application Session Time out (Seconds)";


                        for (int sec = 5; sec <= 900; sec = sec + 5)
                        {
                            if (sec.ToString() == defaultValue)
                            {
                                htmlControlText += "<option value='" + sec.ToString() + "' selected='true'>" + sec.ToString() + "</option>";
                            }
                            else
                            {
                                htmlControlText += "<option value='" + sec.ToString() + "'>" + sec.ToString() + "</option>";
                            }
                        }
                    }
                    else if (settingKey == "Auto Login Time Out")
                    {
                        key = defaultOptionsArray[item].ToUpper().Replace(" ", "_");
                        //TODO:: Below line Has to be removed once localized this string
                        tdsettingtype.Text = localizedResources["L_AUTOLOGIN_TIMEOUT"].ToString();    //"Auto Login Time Out (Seconds)";


                        for (int seconds = 5; seconds <= 600; seconds = seconds + 5)
                        {
                            if (seconds.ToString() == defaultValue)
                            {
                                htmlControlText += "<option value='" + seconds.ToString() + "' selected='true'>" + seconds.ToString() + "</option>";
                            }
                            else
                            {
                                htmlControlText += "<option value='" + seconds.ToString() + "'>" + seconds.ToString() + "</option>";
                            }
                        }
                    }
                    else
                    {
                        //TODO:: Below line Has to be removed once localized this string
                        if (settingKey == "Enable Auto Login")
                        {
                            // tdsettingtype.Text = "Auto Login";
                            tdsettingtype.Text = localizedResources["L_AUTO_LOGIN"].ToString();
                        }

                        if (defaultOptionValuesArray[item] == defaultValue)
                        {
                            htmlControlText += "<option value='" + defaultOptionValuesArray[item] + "' selected='true'>" + localizedOptions[key].ToString() + "</option>";
                        }
                        else
                        {
                            htmlControlText += "<option value='" + defaultOptionValuesArray[item] + "'>" + localizedOptions[key].ToString() + "</option>";
                        }
                    }
                }
                htmlControlText += "</select>";
                break;

            default:
                htmlControlText = "<input style='width:200px' type=text onKeypress='if (event.keyCode==34 || event.keyCode==39) event.returnValue = false;' oncontextmenu='return false' oncopy='return false' onpaste='return false' name='__SETTINGVALUE_" + Convert.ToString((row + 1), CultureInfo.CurrentCulture) + "' value ='" + settingvalue.ToString() + "' size='" + settingvaluelength + "' maxlength='50'> ";
                break;
            }

            //if (settingKey != "Return to Print Jobs")
            //{
            tdsettingvalue.Text += htmlControlText;
            trsettingvalue.Cells.Add(tdsettingtype);
            trsettingvalue.Cells.Add(tdsettingvalue);
            Table_GeneralSettings.Rows.Add(trsettingvalue);
            //}
        }
    }
Ejemplo n.º 6
0
        /// <summary>
        /// Adds the user details.
        /// </summary>
        /// <remarks>
        /// Sequence Diagram:<br/>
        ///     <img src="SequenceDiagrams/SD_PrintReleaseDevice.Browser.SelfRegistration.AddUserDetails.jpg"/>
        /// </remarks>
        private void AddUserDetails()
        {
            string cardID               = Session["SelfCardId"] as string;
            string userID               = TextBoxUserName.Text.Trim();
            string domainName           = TextBoxDomain.Text;
            string userPassword         = password;
            bool   isValidFascilityCode = false;
            bool   isValidCard          = false;
            string cardValidationInfo   = "";
            string deviceIpAddress      = Request.Params["REMOTE_ADDR"].ToString();
            string transformationCard   = Card.ProvideCardTransformation(null, Session["CardReaderType"] as string, cardID, ref isValidFascilityCode, ref isValidCard, ref cardValidationInfo);

            if (!string.IsNullOrEmpty(transformationCard))
            {
                if (string.IsNullOrEmpty(userPassword))
                {
                    userPassword = TextBoxPassword.Text.Trim();
                }

                string pin = TextBoxPin.Text.Trim();
                //if (DataManagerDevice.Controller.Card.IsCardExists(cardID))
                //{
                //    TableCommunicator.Visible = true;
                //    TableSelfRegistrationControls.Visible = false;
                //    TableFutureLogOnControls.Visible = false;
                //    redirectToLogOn = true;
                //    LabelCommunicatorNote.Text = Localization.GetServerMessage(Constants.APPLICATION_TYPE_OSA_CLASSIC, deviceCulture, "CARDID_ALREADY_USED");
                //}
                //else
                //{
                if (isValidFascilityCode == true && string.IsNullOrEmpty(cardValidationInfo) == true)
                {
                    if (string.Compare(cardID, transformationCard, true) == 0)     //cardID.IndexOf(transformationCard) > -1
                    {
                        int    defaultDepartment    = DataManagerDevice.ProviderDevice.Users.ProvideDefaultDepartment(userSource);
                        string userAuthenticationOn = string.Empty;

                        if (RadioButtonUseWindowsPassword.Checked)
                        {
                            userAuthenticationOn = Constants.AUTHENTICATE_FOR_PASSWORD;
                        }
                        else if (RadioButtonUsePin.Checked)
                        {
                            userAuthenticationOn = Constants.AUTHENTICATE_FOR_PIN;
                        }

                        try
                        {
                            if (userSource == Constants.USER_SOURCE_DB)
                            {
                                domainName = "Local";
                            }
                            if (string.IsNullOrEmpty(domainName))
                            {
                                domainName = "Local";
                            }

                            string emailid = string.Empty;
                            if (userSource == Constants.USER_SOURCE_AD)
                            {
                                emailid = Ldap.GetUserEmail(domainName, userID, userPassword, userID.Replace("'", "''"));
                            }

                            // Check If the User exist in the AccountingPlus Database
                            string  isInserted            = "";
                            bool    isUpdated             = false;
                            DataSet dsExistingUserDetails = DataManagerDevice.ProviderDevice.Users.ProvideUserDetails(userID, userSource);
                            if (dsExistingUserDetails != null)
                            {
                                if (dsExistingUserDetails.Tables[0].Rows.Count > 0)
                                {
                                    string userName         = dsExistingUserDetails.Tables[0].Rows[0]["USR_ID"].ToString();
                                    string existingPassword = dsExistingUserDetails.Tables[0].Rows[0]["USR_PASSWORD"].ToString();
                                    // Update existing user
                                    if (!string.IsNullOrEmpty(existingPassword))
                                    {
                                        existingPassword = Protector.ProvideDecryptedPassword(existingPassword);
                                    }
                                    if (userSource == "AD" && existingPassword == "")
                                    {
                                        isInserted = DataManagerDevice.Controller.Users.UpdateUser(userID, existingPassword, cardID, userAuthenticationOn, pin, userSource, defaultDepartment, domainName, ref isUpdated);
                                    }
                                    else if (existingPassword == userPassword && userSource == "DB")
                                    {
                                        isInserted = DataManagerDevice.Controller.Users.UpdateUser(userID, userPassword, cardID, userAuthenticationOn, pin, userSource, defaultDepartment, domainName, ref isUpdated);
                                    }
                                    else
                                    {
                                        isInserted = "false";
                                        TableCommunicator.Visible             = true;
                                        TableSelfRegistrationControls.Visible = false;
                                        TableFutureLogOnControls.Visible      = false;
                                        redirectToLogOn            = true;
                                        LabelCommunicatorNote.Text = "Invalid Username/Password";
                                        return;
                                    }
                                }
                                else
                                {
                                    // Insert new user
                                    isInserted = DataManagerDevice.Controller.Users.InsertUser(userID, userPassword, cardID, userAuthenticationOn, pin, userSource, defaultDepartment, domainName, emailid, ref isUpdated);
                                }
                            }
                            else
                            {
                                // Insert new user
                                isInserted = DataManagerDevice.Controller.Users.InsertUser(userID, userPassword, cardID, userAuthenticationOn, pin, userSource, defaultDepartment, domainName, emailid, ref isUpdated);
                            }

                            if (string.IsNullOrEmpty(isInserted))
                            {
                                //string assignUser = DataManagerDevice.Controller.Users.AssignUserToCostCenter(userID, "1", userSource);

                                password            = "";
                                Session["UserID"]   = userID;
                                Session["Username"] = userID;
                                DataSet dsUsers = DataManagerDevice.ProviderDevice.Users.ProvideUserDetails(userID, userSource);
                                if (dsUsers != null && dsUsers.Tables[0].Rows.Count > 0)
                                {
                                    Session["UserSystemID"] = dsUsers.Tables[0].Rows[0]["USR_ACCOUNT_ID"].ToString();

                                    string setAccessRight = DataManagerDevice.Controller.Users.SetAccessRightForSelfRegistration(dsUsers.Tables[0].Rows[0]["USR_ACCOUNT_ID"].ToString(), userSource, deviceIpAddress);
                                }
                                else
                                {
                                    Session["UserSystemID"] = userID;
                                }

                                string auditorSuccessMessage = string.Format("User {0}, Successfully self registered on device {1}", userID, deviceIpAddress);
                                if (isUpdated)
                                {
                                    auditorSuccessMessage = string.Format("User {0},  Successfully updated card on device {1}", userID, deviceIpAddress);
                                }
                                LogManager.RecordMessage(deviceIpAddress, userID, LogManager.MessageType.Success, auditorSuccessMessage);
                                RedirectPage();
                            }
                            else
                            {
                                TableCommunicator.Visible             = true;
                                TableSelfRegistrationControls.Visible = false;
                                TableFutureLogOnControls.Visible      = false;
                                LabelCommunicatorNote.Text            = Localization.GetServerMessage(Constants.APPLICATION_TYPE_OSA_CLASSIC, deviceCulture, "FAILED_TO_REGISTER");
                            }
                        }
                        catch (Exception ex)
                        {
                            TableCommunicator.Visible             = true;
                            TableSelfRegistrationControls.Visible = false;
                            TableFutureLogOnControls.Visible      = false;
                            if (ex.Message == "Restart the MFP")
                            {
                                LabelCommunicatorNote.Text = Localization.GetServerMessage(Constants.APPLICATION_TYPE_OSA_CLASSIC, deviceCulture, "REGISTRATION_DEVICE_NOT_RESPONDING");
                            }
                            else
                            {
                                LabelCommunicatorNote.Text = Localization.GetServerMessage(Constants.APPLICATION_TYPE_OSA_CLASSIC, deviceCulture, "FAILED_TO_REGISTER");
                            }
                        }
                    }
                    else
                    {
                        InvalidCard();
                    }
                }
                else
                {
                    InvalidCard();
                }
                //}
            }
            else
            {
                InvalidCard();
            }
        }