Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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"));
        }
Exemple #7
0
        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);
        }