public int RegisterUser(int userID) { tracer.Info("Registering : " + userID.ToString()); Registration regData; Employee empData = _unitOfWork.Employees.GetByID(userID); string password = string.Empty; string clearPwd = string.Empty; if (empData != null) { int recordFound = _unitOfWork.Registrations.GetAllQueryable().Where(m => m.EmployeeID == userID).ToList().Count; if (recordFound == 0) { password = System.Web.Security.Membership.GeneratePassword(8, 0); clearPwd = password; password = MD5HashProvider.CreateMD5Hash(Regex.Replace(password, @"[^a-zA-Z0-9]", m => "$")); regData = new Registration() { EmployeeID = userID, Password = password, Status = 1, DateStamp = DateTime.Now }; _unitOfWork.Registrations.Insert(regData); if (_unitOfWork.Save() > 0) { tracer.Info("Registration Success. Sending Email Notification."); //send email notification to user uisng the emp email FastEmail email = new FastEmail(); email.Receipients = new List <string>() { empData.EmailAddress }; email.Subject = FASTConstant.EMAIL_SIMPLE_SUBJECT.Replace("[XXX]", "User Registration"); email.HTMLBody = Helper.EmailHelper.GenerateHTMLBody(Helper.EmailHelper.EmailType.REGISTRATION); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_RECEIPIENT_NAME, empData.FirstName + " " + empData.LastName); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_USERNAME, empData.EmployeeID.ToString()); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_PASSWORD, clearPwd); SMTPEmail emailSender = new SMTPEmail(_emailConfig, email); emailSender.SendEmail(); _unitOfWork.LogSuccess(FASTConstant.AUDIT_ACTION_USER_REG, "", employeeID: userID); return(FASTConstant.RETURN_VAL_SUCCESS); } else { tracer.Warn("Registration Failed."); return(FASTConstant.RETURN_VAL_FAILED); } } else { tracer.Warn("Registration Failed. User already registered."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_REG, "Duplicate ID", employeeID: userID); return(FASTConstant.RETURN_VAL_DUPLICATE); } } else { tracer.Warn("Registration Failed. User not found in DB."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_REG, "Not Found", employeeID: userID); return(FASTConstant.RETURN_VAL_NOT_FOUND); } }
public int ChangePassword(int userID, string newHashedPassword, string oldHashedPassword) { tracer.Info("Change Password : "******"Change Password Success. Sending Email Notification."); //Notify through email FastEmail email = new FastEmail(); email.Receipients = new List <string>() { empData.EmailAddress }; email.Subject = FASTConstant.EMAIL_SIMPLE_SUBJECT.Replace("[XXX]", "Change Password"); email.HTMLBody = Helper.EmailHelper.GenerateHTMLBody(Helper.EmailHelper.EmailType.CHANGE_PASSWORD); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_RECEIPIENT_NAME, empData.FirstName + " " + empData.LastName); SMTPEmail emailSender = new SMTPEmail(_emailConfig, email); emailSender.SendEmail(); _unitOfWork.LogSuccess(FASTConstant.AUDIT_ACTION_USER_CHANGE_PWD, "", employeeID: userID); return(FASTConstant.RETURN_VAL_SUCCESS); } else { tracer.Warn("Change Password Failed."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_CHANGE_PWD, "", employeeID: userID); return(FASTConstant.RETURN_VAL_FAILED); } } else { tracer.Warn("Change Password Failed. Old Password Invalid."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_CHANGE_PWD, "Old password not match.", employeeID: userID); return(FASTConstant.RETURN_VAL_FAILED); } } else { tracer.Warn("Change Password Failed. User Not Found."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_CHANGE_PWD, "Not Found", employeeID: userID); return(FASTConstant.RETURN_VAL_NOT_FOUND); } } else { tracer.Warn("Change Password Failed. User Not Found."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_CHANGE_PWD, "Not Found", employeeID: userID); return(FASTConstant.RETURN_VAL_NOT_FOUND); } }
public int ResetPassword(int userID) { tracer.Info("Reset Password : "******"[^a-zA-Z0-9]", m => "$"); password = MD5HashProvider.CreateMD5Hash(clearPassword); regData.Password = password; _unitOfWork.Registrations.Update(regData); if (_unitOfWork.Save() > 0) { tracer.Info("Reset Password Success. Sending Email Notification."); //notify through email FastEmail email = new FastEmail(); email.Receipients = new List <string>() { empData.EmailAddress }; email.Subject = FASTConstant.EMAIL_SIMPLE_SUBJECT.Replace("[XXX]", "Reset Password"); email.HTMLBody = Helper.EmailHelper.GenerateHTMLBody(Helper.EmailHelper.EmailType.RESET_PASSWORD); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_RECEIPIENT_NAME, empData.FirstName + " " + empData.LastName); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_USERNAME, empData.EmployeeID.ToString()); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_PASSWORD, clearPassword); SMTPEmail emailSender = new SMTPEmail(_emailConfig, email); emailSender.SendEmail(); _unitOfWork.LogSuccess(FASTConstant.AUDIT_ACTION_USER_RESET, "", employeeID: userID); return(FASTConstant.RETURN_VAL_SUCCESS); } else { tracer.Warn("Reset Password Failed."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_RESET, "", employeeID: userID); return(FASTConstant.RETURN_VAL_FAILED); } } else { tracer.Warn("Reset Password Failed. User Not Found."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_RESET, "Not Found", employeeID: userID); return(FASTConstant.RETURN_VAL_NOT_FOUND); } } else { tracer.Warn("Reset Password Failed. User Not Found."); _unitOfWork.LogFailure(FASTConstant.AUDIT_ACTION_USER_RESET, "Not Found", employeeID: userID); return(FASTConstant.RETURN_VAL_NOT_FOUND); } }
public ActionResult UploadFile() { ExcelHelper excelHelp = new ExcelHelper(); List <FixAssetExcelUploadModel> assets = new List <FixAssetExcelUploadModel>(); BulkUpload currentUpload = new Common.BulkUpload(); BulkUploadProcess bulkProcess = new BulkUploadProcess(); AssetProcess assetProcess = new AssetProcess(); EmployeeProcess employeeProcess = new EmployeeProcess(); Employee sender = new Employee(); ConfigurationProcess configProcess = new ConfigurationProcess(); FastEmailConfiguration emailConfig = configProcess.GetEmailConfiguration(); StringBuilder uploadLog = new StringBuilder(); string filename = string.Empty; string completeFileName = string.Empty; //This is for the logging bulkProcess.UserID = User.Identity.Name.ToInteger(); configProcess.UserID = User.Identity.Name.ToInteger(); employeeProcess.UserID = User.Identity.Name.ToInteger(); assetProcess.UserID = User.Identity.Name.ToInteger(); try { #region Get Request Files foreach (string upload in Request.Files) { if (!(Request.Files[upload] != null && Request.Files[upload].ContentLength > 0)) { continue; } string path = HttpContext.Server.MapPath("\\App_Data\\BulkUploads"); filename = Path.GetFileName(Request.Files[upload].FileName); //check the filename and ensure its an xlsx file if (String.Compare(filename.Substring(filename.Length - 4), "xlsx", true) != 0) { throw new Exception("Invalid file extension."); } //add the current time as unique indicator filename = DateTime.Now.ToFileTime().ToString() + "_" + filename; // If Upload folder is not yet existing, this code will create that directory. if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } completeFileName = Path.Combine(path, filename); Request.Files[upload].SaveAs(completeFileName); } #endregion BulkUpload newFile = new BulkUpload() { EmployeeID = User.Identity.Name.ToInteger(), FilePath = filename, TotalRecords = 0, TotalInserts = 0, RequestDate = DateTime.Now, Type = FASTConstant.BULKIPLOAD_TYPE_ASSET }; if (bulkProcess.Add(newFile) == FASTConstant.RETURN_VAL_SUCCESS) { //get the current upload currentUpload = bulkProcess.GetCurrentUpload(newFile.FilePath, newFile.EmployeeID); } if (currentUpload != null) { #region Process the excel file //Success! Lets process the file. System.Data.DataTable fixAssetTable = new DataTable(); fixAssetTable = excelHelp.GetExcelDataTable(completeFileName, "SELECT * FROM [FixAsset$]"); fixAssetTable = excelHelp.ConvertToFixAssetTable(fixAssetTable); if (fixAssetTable == null) { throw new Exception("The upload file contains null data."); } assets = fixAssetTable.ToList <Models.FixAssetExcelUploadModel>(); sender = employeeProcess.GetEmployeeByID(currentUpload.EmployeeID); if (assets.Count > 0) { int totalInserts = 0; currentUpload.TotalRecords = assets.Count; bulkProcess.UpdateProcessingStep(currentUpload, FASTConstant.BULKUPLOAD_STATUS_INPROGRESS); foreach (FixAssetExcelUploadModel asset in assets) { FixAsset tempAsset = new FixAsset() { AssetTag = asset.AssetTag, SerialNumber = asset.SerialNumber, Model = asset.Model, Brand = asset.Brand, AssetClassID = asset.AssetClassID, AssetTypeID = asset.AssetTypeID, AssetStatusID = asset.AssetStatusID, AcquisitionDate = asset.AcquisitionDate }; if (assetProcess.Add(tempAsset) == FASTConstant.RETURN_VAL_SUCCESS) { totalInserts++; uploadLog.AppendLine(String.Format("<p>{0} : {1} inserted.</p>", FASTConstant.SUCCESSFUL, asset.AssetTag)); } else { uploadLog.AppendLine(String.Format("<p>{0} : {1} not inserted.</p>", FASTConstant.FAILURE, asset.AssetTag)); } } currentUpload.TotalInserts = totalInserts; bulkProcess.UpdateProcessingStep(currentUpload, FASTConstant.BULKUPLOAD_STATUS_DONE); //Send email to the requestor FastEmail email = new FastEmail(); email.Receipients = new List <string>() { sender.EmailAddress }; email.Subject = FASTConstant.EMAIL_SIMPLE_SUBJECT.Replace("[XXX]", "Fix Asset Bulk Upload Result"); email.HTMLBody = FASTProcess.Helper.EmailHelper.GenerateHTMLBody(FASTProcess.Helper.EmailHelper.EmailType.BULK_UPLOAD); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_RECEIPIENT_NAME, sender.FirstName + " " + sender.LastName); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_BULKUPLOAD_INFO, bulkProcess.GenerateUploadinformationHTML(currentUpload)); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_BULKUPLOAD_LOG, uploadLog.ToString()); email.HTMLBody = email.HTMLBody.Replace(FASTConstant.EMAIL_BULKUPLOAD_SUMMARY, bulkProcess.GenerateSummaryinformationHTML(currentUpload)); SMTPEmail emailSender = new SMTPEmail(emailConfig, email); emailSender.SendEmail(); } else { bulkProcess.UpdateProcessingStep(currentUpload, FASTConstant.BULKUPLOAD_STATUS_DONE); } #endregion } TempData["Result"] = "SUCCESSFUL"; TempData["Source"] = "File Upload"; TempData["ExtraMessage"] = "An email will be sent to you containing the results of the upload process."; TempData["Action"] = "Index"; TempData["Controller"] = "FixAsset"; return(View("~/Views/Shared/Result.cshtml")); } catch (Exception ex) { TempData["Result"] = "FAILURE"; TempData["Source"] = "Fix Asset Bulk Upload"; TempData["ExtraMessage"] = ex.Message; return(View("~/Views/Shared/Result.cshtml")); } }