public ActionResult DownloadAttachment() { SuperPassportModel superPassportModel = Session["superPassportModel"] as SuperPassportModel; PassportDetails pDet = superPassportModel.PassportDetails.First(); string filename = pDet.passportFileName; byte[] filedata = pDet.passportFileBytes; string contentType = pDet.passportContentType; var cd = new System.Net.Mime.ContentDisposition { FileName = filename, Inline = true, }; Response.AppendHeader("Content-Disposition", cd.ToString()); return(File(filedata, contentType)); }
public ActionResult ReviewPassportForm(SuperPassportModel superPassportModel, string ReviewAction) { ActionResult actionResult = null; superPassportModel = Session["superPassportModel"] as SuperPassportModel; switch (ReviewAction) { case "View Passport": PassportDetails pDet = superPassportModel.PassportDetails.First(); string filename = pDet.passportFileName; byte[] filedata = pDet.passportFileBytes; string contentType = pDet.passportContentType; var cd = new System.Net.Mime.ContentDisposition { FileName = filename, Inline = true, }; Response.AppendHeader("Content-Disposition", cd.ToString()); Response.Write("<script>"); Response.Write("window.open('" + File(filedata, contentType) + "', '_newtab');"); Response.Write("</script>"); //actionResult = File( filedata, contentType ); break; case "Approve": break; case "Deny": break; } return(actionResult); }
public ActionResult PassportReviewForm(string WorkflowID, bool editMode, bool?myEntries) { Session["UserName"] = @User.Identity.Name; this._UserName = Session["UserName"] as string ?? String.Empty; if (_UserName == null || _UserName.Equals(String.Empty)) { ViewBag.ErrorMessage = "You must be logged in to continue."; return(RedirectToAction("Login", "Login")); } //now resolve the user profile from AD and Xceed StaffADProfile staffADProfile = new StaffADProfile(); staffADProfile.user_logon_name = _UserName; //AD ActiveDirectoryQuery activeDirectoryQuery = new ActiveDirectoryQuery(staffADProfile); staffADProfile = activeDirectoryQuery.GetStaffProfile(); if (staffADProfile == null) { ViewBag.ErrorMessage = "Your profile is not properly setup on the system. Please contact InfoTech."; return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } //Get the request identified by the workflow id and be sure the user is an approver List <RequestDetails> requestDetails = new List <RequestDetails>(); requestDetails = LINQCalls.getExistingPassportEntry(WorkflowID, staffADProfile.employee_number); if (requestDetails == null) { ViewBag.ErrorMessage = "You are not authorized to process this request"; return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } List <PassportDetails> passportDetails = new List <PassportDetails>(); PassportDetails pDetails = LINQCalls.getPassportDetails(WorkflowID); passportDetails.Add(pDetails); EntryModel entryModel = new EntryModel(); entryModel = LINQCalls.getWorkflowEntry(WorkflowID); entryModel.DOE = LINQCalls.getXceedProfile(entryModel.StaffNumber).doe; ViewBag.StaffBranch = entryModel.Branch; int requeststageid = entryModel.RequestStageId; string requeststage = entryModel.RequestStage; DateTime requestdate = entryModel.DateSubmitted; string initiatornumber = entryModel.StaffNumber; //LINQCalls.getInitiatorNumber(WorkflowID) ?? staffADProfile.employee_number; string cansave = (!requeststage.Equals(INIT_STAGE) && !requeststage.Equals(DENIED) && !requeststage.Equals(APPROVED) && !initiatornumber.Equals(staffADProfile.employee_number)) ? "true" : "false"; XElement ApprovalHistory = LINQCalls.getApprovalHistory(WorkflowID); XDocument xDocument = DataHandlers.ToXDocument(ApprovalHistory); List <ApprovalDetails> approvalHistory = xDocument.Descendants("Approvals").Select(det => new ApprovalDetails { ApproverNames = det.Element("ApproverName").Value, ApproverStaffNumbers = det.Element("ApproverStaffNumber").Value, ApprovedStages = det.Element("ApprovedStage").Value, ApproverAction = det.Element("ApproverAction").Value, ApprovalDateTime = det.Element("ApprovalDateTime").Value, ApproverComments = det.Element("ApproverComment").Value }).ToList(); SuperPassportModel superPassportModel = new SuperPassportModel(); if (TempData["superPassportModel"] != null) { superPassportModel = TempData["superPassportModel"] as SuperPassportModel; } else { superPassportModel = new SuperPassportModel { WorkflowID = WorkflowID, RequestStageID = entryModel.RequestStageId, RequestStage = entryModel.RequestStage, RequestDate = entryModel.DateSubmitted, StaffADProfile = staffADProfile, RequestDetails = requestDetails, CanSave = cansave, ApprovalDetails = approvalHistory, EntryModel = entryModel, RequestBranch = entryModel.Branch, RequestBranchCode = entryModel.BranchCode, PassportDetails = passportDetails }; } Session["requestDetails"] = superPassportModel.RequestDetails; TempData["editMode"] = (editMode == true) ? "true" : "false"; if (TempData["ErrorMessage"] != null) { ViewBag.ErrorMessage = TempData["ErrorMessage"] as string; } Session["superPassportModel"] = superPassportModel; TempData["superPassportModel"] = superPassportModel; return(View(superPassportModel)); }
public ActionResult ViewPassport(string WorkflowID, bool editMode, bool?myEntries, bool?viewMode) { Session["UserName"] = @User.Identity.Name; this._UserName = Session["UserName"] as string ?? ""; if (_UserName == null || _UserName.Equals(String.Empty)) { ViewBag.ErrorMessage = "You must be logged in to continue."; return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } //now resolve the user profile from AD and Xceed StaffADProfile staffADProfile = new StaffADProfile(); staffADProfile.user_logon_name = _UserName; //AD ActiveDirectoryQuery activeDirectoryQuery = new ActiveDirectoryQuery(staffADProfile); staffADProfile = activeDirectoryQuery.GetStaffProfile(); staffADProfile.branch_code = LINQCalls.getEntryProfile(WorkflowID).branch_code; staffADProfile.branch_name = LINQCalls.getEntryProfile(WorkflowID).branch_name; if (staffADProfile == null) { ViewBag.ErrorMessage = "Your profile is not properly setup on the system. Please contact InfoTech."; return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } //Get the request identified by the workflow id List <RequestDetails> requestDetails = new List <RequestDetails>(); if (myEntries != null && myEntries == true) { string entrykey = staffADProfile.employee_number + "_" + staffADProfile.branch_code; requestDetails = LINQCalls.getExistingPassportEntry(WorkflowID, staffADProfile.employee_number, entrykey); } else { requestDetails = LINQCalls.getExistingPassportEntry(WorkflowID, staffADProfile.employee_number); } EntryModel entryModel = new EntryModel(); entryModel = LINQCalls.getWorkflowEntry(WorkflowID); ViewBag.StaffBranch = entryModel.Branch; int requeststageid = entryModel.RequestStageId; string requeststage = entryModel.RequestStage; DateTime requestdate = entryModel.DateSubmitted; string initiatornumber = LINQCalls.getInitiatorNumber(WorkflowID) ?? staffADProfile.employee_number; string cansave = (requeststage.Equals(INIT_STAGE) || requeststage.Equals(DENIED)) && initiatornumber.Equals(staffADProfile.employee_number) ? "true" : "false"; staffADProfile.appperiod = entryModel.AppraisalPeriod; XElement ApprovalHistory = LINQCalls.getApprovalHistory(WorkflowID); XDocument xDocument = DataHandlers.ToXDocument(ApprovalHistory); List <ApprovalDetails> approvalHistory = xDocument.Descendants("Approvals").Select(det => new ApprovalDetails { ApproverNames = det.Element("ApproverName").Value, ApproverStaffNumbers = det.Element("ApproverStaffNumber").Value, ApprovedStages = det.Element("ApprovedStage").Value, ApproverAction = det.Element("ApproverAction").Value, ApprovalDateTime = det.Element("ApprovalDateTime").Value }) .ToList(); SuperPassportModel superPassportModel = new SuperPassportModel(); if (TempData["superPassportModel"] != null) { superPassportModel = TempData["superPassportModel"] as SuperPassportModel; } else { superPassportModel = new SuperPassportModel { WorkflowID = WorkflowID, RequestStageID = entryModel.RequestStageId, RequestStage = entryModel.RequestStage, RequestDate = entryModel.DateSubmitted, StaffADProfile = staffADProfile, RequestDetails = requestDetails, CanSave = cansave, ApprovalDetails = approvalHistory, EntryModel = entryModel, RequestBranch = entryModel.Branch, RequestBranchCode = entryModel.BranchCode }; } Session["requestDetails"] = superPassportModel.RequestDetails; TempData["editMode"] = (editMode == true) ? null : "false"; if (TempData["ErrorMessage"] != null) { ViewBag.ErrorMessage = TempData["ErrorMessage"] as string; } TempData["superPassportModel"] = superPassportModel; return(RedirectToAction("PassportInputForm")); }
public ActionResult PassportInputForm() { Session["UserName"] = @User.Identity.Name; this._UserName = Session["UserName"] as string ?? ""; if (_UserName == null || _UserName.Equals(String.Empty)) { ViewBag.ErrorMessage = "You must be logged in to continue."; return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } SuperPassportModel superPassportModel = new SuperPassportModel(); StaffADProfile staffADProfile = new StaffADProfile(); if (TempData["superPassportModel"] != null) { superPassportModel = TempData["superPassportModel"] as SuperPassportModel; staffADProfile = superPassportModel.StaffADProfile; ViewBag.hasdata = "true"; //superPassportModel.PassportDetails.First().Nationality = SelectListItemHelper.GetCountries(); } else { //now resolve the user profile from AD and Xceed staffADProfile.user_logon_name = _UserName; //AD ActiveDirectoryQuery activeDirectoryQuery = new ActiveDirectoryQuery(staffADProfile); staffADProfile = activeDirectoryQuery.GetStaffProfile(); if (staffADProfile == null) { ViewBag.ErrorMessage = "Your profile is not properly setup on the system. Please contact InfoTech."; return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } //EXCEED staffADProfile = LINQCalls.getXceedProfile(staffADProfile.employee_number); staffADProfile.doe = staffADProfile.doe; staffADProfile.dob = staffADProfile.dob; string sex = (staffADProfile.gender.Equals(1)) ? SEX_FEMALE: SEX_MALE; List <RequestDetails> requestDetails = new List <RequestDetails>(); List <PassportDetails> passportDetails = new List <PassportDetails>(); requestDetails = LINQCalls.getExistingPassportEntry(staffADProfile); string workflowid = Guid.NewGuid().ToString().ToUpper(); int requeststageid = 0; string requeststage = INIT_STAGE; DateTime requestdate = new DateTime(); string cansave = this.CANSAVE; superPassportModel = new SuperPassportModel { WorkflowID = workflowid, RequestStageID = requeststageid, RequestStage = requeststage, RequestDate = requestdate, CanSave = cansave, StaffADProfile = staffADProfile, RequestDetails = requestDetails, EntryModel = null, RequestBranch = staffADProfile.branch_name, RequestBranchCode = staffADProfile.branch_code, PassportDetails = passportDetails }; } staffADProfile.NumberOfCountries = SelectListItemHelper.GetNumberCountries(); superPassportModel.StaffADProfile = staffADProfile; if (TempData["ErrorMessage"] != null) { ViewBag.ErrorMessage = TempData["ErrorMessage"] as string; } return(View(superPassportModel)); }
public ActionResult PassportInputForm(SuperPassportModel superPassportModel, string PassportAction) { List <RequestDetails> requestDetails = superPassportModel.RequestDetails; IEnumerable <RequestDetails> requestdetails = superPassportModel.RequestDetails; string retVal = ""; switch (PassportAction) { case "CountryCountRefresh": //Form is submitted when the user selects the number of countries List <PassportDetails> passportDetails = new List <PassportDetails>(); string sex = (superPassportModel.StaffADProfile.gender.Equals(1)) ? SEX_FEMALE: SEX_MALE; for (int i = 0; i < superPassportModel.StaffADProfile.countryCount; i++) { PassportDetails pDetails = new PassportDetails(); pDetails.entry_key = ""; pDetails.passportAuthority = ""; pDetails.passportDateOfExpiry = ""; pDetails.passportDateOfIssue = ""; pDetails.passportNationality = ""; pDetails.passportNumber = ""; pDetails.passportOtherNames = ""; pDetails.passportPlaceOfBirth = ""; pDetails.passportSex = sex; pDetails.passportSurname = ""; pDetails.passportType = "P"; pDetails.passportDateOfBirth = superPassportModel.StaffADProfile.dob; pDetails.Nationality = SelectListItemHelper.GetCountries(); passportDetails.Add(pDetails); } superPassportModel.PassportDetails = passportDetails; break; case "Deny": // Good. let's send this f@*ker back //requestDetails.Select(c => { c.entry_key = c.employee_number + "_" + superPassportModel.StaffADProfile.appperiod + "_" + superPassportModel.StaffADProfile.branch_code; return c; }).ToList(); requestDetails.Select(c => { c.workflowid = superPassportModel.WorkflowID; return(c); }).ToList(); // SAVE the value to the DATABASE requestdetails = superPassportModel.RequestDetails; //dataTable = DataHandlers.ToDataTable(requestdetails); //retVal = new AppDatabase().inputPassportEntries(dataTable, superPassportModel, "AppraisalDbConnectionString", DENIED_STATUS); if (retVal != null) { TempData["UploadComplete"] = "false"; TempData["ErrorMessage"] = retVal; TempData["superPassportModel"] = superPassportModel; } else { //String.format(SUMBMITTEDMSG)--add the approvers var approvers = LINQCalls.getApproverNames(superPassportModel.WorkflowID, -1); TempData["PostBackMessage"] = DENIEDMSG; TempData["Approvers"] = string.Join("\\n", approvers.ToArray()); return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } break; case "Submit": if (ModelState.IsValid) { if (!checkVlaidFileTypes(superPassportModel.PassportDetails)) { ViewBag.ErrorMessage = "Invalid file type. Only \"pdf\" files are supported."; //TempData["superPassportModel"] = superPassportModel; } else { IEnumerable <PassportDetails> _passportDetails = superPassportModel.PassportDetails; _passportDetails.Select(c => { c.entry_key = superPassportModel.StaffADProfile.employee_number + "_" + c.passportNumber.ToUpper(); return(c); }).ToList(); _passportDetails.Select(c => { c.passportFileName = c.passportUpload.FileName; return(c); }).ToList(); _passportDetails.Select(c => { c.passportNumber = c.passportNumber.ToUpper(); return(c); }).ToList(); _passportDetails.Select(c => { c.passportSurname = c.passportSurname.ToUpper(); return(c); }).ToList(); _passportDetails.Select(c => { c.passportOtherNames = c.passportOtherNames.ToUpper(); return(c); }).ToList(); _passportDetails.Select(c => { c.passportPlaceOfBirth = c.passportPlaceOfBirth.ToUpper(); return(c); }).ToList(); _passportDetails.Select(c => { c.passportAuthority = c.passportAuthority.ToUpper(); return(c); }).ToList(); _passportDetails.Select(c => { c.passportContentType = c.passportUpload.ContentType; return(c); }).ToList(); _passportDetails.Select(c => { Stream fs = c.passportUpload.InputStream; BinaryReader br = new BinaryReader(fs); byte[] bytes = br.ReadBytes((Int32)fs.Length); c.passportFileBytes = bytes; return(c); }).ToList(); DataTable dataTable = new DataTable(); dataTable = DataHandlers.ToDataTable(_passportDetails); string _retVal = new AppDatabase().inputPassportEntries(dataTable, superPassportModel, "AppraisalDbConnectionString", SUBMIT_STATUS); if (_retVal != null) { TempData["UploadComplete"] = "false"; TempData["ErrorMessage"] = _retVal; TempData["superPassportModel"] = superPassportModel; } else { int newstageid = 0; switch (superPassportModel.RequestStageID) { case 0: newstageid = 3; break; case -1: newstageid = 3; break; case 3: newstageid = 20; break; case 20: newstageid = 100; break; } var approvers = LINQCalls.getHRApproverNames(superPassportModel.WorkflowID, newstageid); TempData["PostBackMessage"] = SUMBMITTEDMSG; TempData["Approvers"] = string.Join("\\n", approvers.ToArray()); return(RedirectToAction("AwaitingMyApproval", "AwaitingApproval")); } } } break; } //superPassportModel.RequestDetails = requestDetails; TempData["superPassportModel"] = superPassportModel; return(RedirectToAction("PassportInputForm")); }
internal string inputPassportEntries(DataTable dataTable, SuperPassportModel superPassportModel, string ConnString, string Status) { string retVal = null; string connString = getConnectionString(ConnString); SqlConnection conn = new SqlConnection(connString); SqlCommand cmnd = new SqlCommand(); cmnd.Connection = conn; cmnd.CommandType = CommandType.StoredProcedure; cmnd.CommandText = "zsp_insert_passport_entries"; dataTable.Columns.Remove("Nationality"); dataTable.Columns.Remove("passportNationality"); dataTable.Columns.Remove("passportUpload"); DataTable dataTableCloned = dataTable.Clone(); dataTableCloned.Columns["passportDateOfBirth"].DataType = typeof(DateTime); dataTableCloned.Columns["passportDateOfIssue"].DataType = typeof(DateTime); dataTableCloned.Columns["passportDateOfExpiry"].DataType = typeof(DateTime); dataTableCloned.Columns["passportFileBytes"].DataType = typeof(byte[]); foreach (DataRow row in dataTable.Rows) { row.SetField("passportDateOfBirth", Convert.ToDateTime(row["passportDateOfBirth"].ToString()).ToString("yyyy-MM-dd hh:mm:ss")); row.SetField("passportDateOfIssue", Convert.ToDateTime(row["passportDateOfIssue"].ToString()).ToString("yyyy-MM-dd hh:mm:ss")); row.SetField("passportDateOfExpiry", Convert.ToDateTime(row["passportDateOfExpiry"].ToString()).ToString("yyyy-MM-dd hh:mm:ss")); dataTableCloned.ImportRow(row); } SqlParameter parameter = cmnd.CreateParameter(); parameter.ParameterName = "@tvpPassportEntries"; parameter.Value = dataTableCloned; parameter.SqlDbType = SqlDbType.Structured; parameter.TypeName = "dbo.PassportEntriesType"; cmnd.Parameters.Add(parameter); cmnd.Parameters.Add("@workflowid", SqlDbType.VarChar).Value = superPassportModel.WorkflowID; cmnd.Parameters.Add("@requeststageid", SqlDbType.Int).Value = superPassportModel.RequestStageID; cmnd.Parameters.Add("@requeststage", SqlDbType.VarChar).Value = superPassportModel.RequestStage; cmnd.Parameters.Add("@employee_number", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.employee_number; cmnd.Parameters.Add("@name", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.name; cmnd.Parameters.Add("@grade", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.grade; cmnd.Parameters.Add("@branchname", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.branch_name; cmnd.Parameters.Add("@branchcode", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.branch_code; cmnd.Parameters.Add("@deptname", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.department; cmnd.Parameters.Add("@deptcode", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.department_id; cmnd.Parameters.Add("@passport_status", SqlDbType.VarChar).Value = Status; cmnd.Parameters.Add("@hr_uploader_name", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.name; cmnd.Parameters.Add("@hr_uploader_id", SqlDbType.VarChar).Value = superPassportModel.StaffADProfile.employee_number; cmnd.Parameters.Add("@appid", SqlDbType.VarChar).Value = DataHandlers.APP_ID; cmnd.Parameters.Add("@rErrorCode", SqlDbType.Int, 2).Direction = ParameterDirection.Output; cmnd.Parameters.Add("@rErrorMsg", SqlDbType.VarChar, 255).Direction = ParameterDirection.Output; SqlDataReader dr; try { // Open the data connection cmnd.Connection = conn; conn.Open(); dr = cmnd.ExecuteReader(); int retCode = int.Parse(cmnd.Parameters["@rErrorCode"].Value.ToString()); if (retCode != 0) { retVal = retCode + "|" + cmnd.Parameters["@rErrorMsg"].Value.ToString(); } } catch (SqlException ex) { if (ex.Number != 0) { retVal = ex.Number + "|" + ex.Message; logWriter.WriteErrorLog(string.Format("inpuPassportEntries : Exception!!! / {0}", retVal)); } } finally { conn.Close(); cmnd.Dispose(); dr = null; } return(retVal); }