public async Task <IActionResult> Approve(ApproveModel model) { CheckAda(); foreach (var item in model.Images.ToList()) { Image image = db.Images.Find(int.Parse(item.Value)); if (item.Selected) { image.Approved = true; model.Images.Remove(item); } else { item.Text = image.Caption; } } await db.SaveChangesAsync(); ViewBag.message = "Images approved!"; return(View(model)); }
public IActionResult Confirm(int id) { var entity = _db.Load <Approval>(id); if (entity == null) { return(NotFound()); } if (entity.ApproveStep != (int)ApproveStep.Audited) { return(Content("仅财务审核过的记录可审核")); } if (entity.DepartmentId != CurrentUser.DepartmentId) { return(Content("申请人部门与当前账户不一致,禁止编辑")); } ViewBag.Entity = entity; var model = new ApproveModel { Id = entity.Id, IsPass = entity.ApproveResult == 3, Remark = entity.ApproveRemark }; return(View(model)); }
public ActionResult Approve(string travelRequestId, int badgeNumber) { var approveModel = new ApproveModel() { TravelRequestId = travelRequestId, BadgeNumber = badgeNumber }; return(View("Approve", approveModel)); }
public ActionResult Approve(int id, ApproveModel model) { var db = new Context(); var appr = db.Approves.Include("Process").SingleOrDefault(x => x.Id == id); var usrid = Session.GetSessionUser().Id; if (appr == null) { return(Json(new { error = "指定审批流程不存在" })); } if (usrid != appr.CurrenterId) { return(Json(new { error = "您不是该工艺规程的审批者" })); } if (usrid == appr.ProoferId) { if (!model.Agree) { appr.CurrenterId = null; appr.ApproveState = ApproveState.未通过; appr.Interrupt = true; } else { appr.CurrenterId = appr.ApproverId; } appr.ProofNote = model.Note; } else { appr.CurrenterId = null; appr.ApproveNote = model.Note; appr.ApproveState = model.Agree ? ApproveState.通过 : ApproveState.未通过; } if (appr.ApproveState == ApproveState.未通过) { appr.Process.ApprovalState = ApprovalState.审核不通过; } if (appr.ApproveState == ApproveState.通过) { appr.Process.ApprovalState = ApprovalState.审核通过; } db.SaveChanges(); return(Json(new { succeed = true })); }
public async Task <ActionResult> Edit(ApproveModel model) { try { var currentuser = UserManager.FindById(User.Identity.GetUserId()); var cont = db.Contragents.Single(x => x.Id == model.ContragentId); cont.ApprovingComment = model.Comment; cont.HasContractCopy = model.HasContractCopy; cont.HasContractOriginal = model.HasContractOriginal; cont.IsApproved = model.IsApproved; cont.IsBuyer = model.IsBuyer; cont.IsSeller = model.IsSeller; cont.ApprovedByUserId = currentuser.Id; cont.ApprovedByUser = currentuser; cont.ContractOnSignin = model.ContractIsOnSign; db.UpdateEntity(cont, currentuser.Id); if (cont.IsApproved) { CheckRoles(cont); EmailFactory.SendEmailAsync(new LegalActive(cont.CreatedByUser, cont)); } else { CheckRoles(cont); if (model.SendMail) { foreach (var user in cont.ContragentUsers.ToList()) { logger.Info($"contragent {cont.LongName} deactivated, sending mail"); EmailFactory.SendEmailAsync(new LegalNotActive(user, cont)); } } } return(RedirectToAction("Index")); } catch (Exception ex) { logger.Error(ex); ModelState.AddModelError("", ex.Message); return(RedirectToAction("Details", new { @id = model.ContragentId })); } }
public IActionResult Approve(int id) { var entity = _db.Load <Approval>(id); if (entity == null) { return(NotFound()); } ViewBag.Entity = entity; var model = new ApproveModel { Id = entity.Id, IsPass = entity.ApproveResult > 1, Remark = entity.ApproveRemark }; return(View(model)); }
public ActionResult Approve(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } try { //file info var filedetails = _context.Files.FirstOrDefault(f => f.Id == id); ViewBag.FileId = id; ViewBag.FileName = filedetails.FileNumber; var reflist = _context.ReferanceNumbers .Where(r => r.IsDeleted == false) .Where(f => f.FileId == id) .Where(f => f.Stage == 3).AsEnumerable(); var itemlist = _context.LineItems.Where(l => reflist.Contains(l.ReferanceNumber)).AsEnumerable(); var lineitemsupliers = _context.LineItemSuppliers.Where(l => itemlist.Contains(l.LineItem)).AsEnumerable(); var suplist = _context.Suppliers.Where(s => lineitemsupliers.Any(l => l.SupplierId.Contains(s.Id))).AsEnumerable(); var approveModel = new ApproveModel { ReferanceNumbers = reflist, Suppliers = suplist }; //list rfq numbers on approve //supplier list with e-mail return(View(approveModel)); } catch (Exception e) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, e.Message)); } }
public object approve_flowcase(ApproveModel model) { Singleton <ILogWritter> .Instance?.WriteLog("WorkFlow-approve_flowcase", JsonConvert.SerializeObject(model)); Approver approver = new Approver(Entities, User.Identity.Name); try { ReturnApproveResult result = approver.Approve(model.flowCaseId, model.nextApprovers); if (result.Result == ApproveResult.Approved || result.Result == ApproveResult.FlowApproved) { approver.NotificationSender.Send(); return(new { ret_code = RetCode.Success, ret_msg = string.Empty }); } return(new { ret_code = RetCode.Failure, ret_msg = result.ToString() }); } catch (Exception ex) { return(new { ret_code = RetCode.Failure, ret_msg = ex.Message }); } }
public IActionResult Approve(int id, IFormCollection collection) { var entity = new ApproveModel(); TryUpdateModelAsync(entity); if (ModelState.IsValid) { var result = _service.Approve(id, CurrentUser.No, CurrentUser.Name, entity.IsPass, entity.Remark); if (result > 0) { return(RedirectToAction(nameof(Index))); } ModelState.AddModelError(string.Empty, "审批失败"); } var model = _db.Load <Approval>(id); ViewBag.Entity = model; return(View(entity)); }
public IActionResult Approve() { CheckAda(); List <SelectListItem> items = new List <SelectListItem>(); foreach (var im in db.Images) { SelectListItem item = new SelectListItem { Text = im.Caption, Value = im.Id.ToString(), Selected = im.Approved }; items.Add(item); } ViewBag.message = ""; ApproveModel model = new ApproveModel { Images = items }; return(View(model)); }
public async Task <IActionResult> Index() { //RegistryProvider provider = new RegistryProvider(); //string username = User.Identity.Name; ApproveModel model = new ApproveModel(); model.Agencies = await _context.Agencies.Where(x => x.ApprovalState == ApprovalState.Requested) .Include(i => i.Creator) .Include(i => i.AdminContact) .Include(i => i.TechnicalContact) .ToListAsync(); Dictionary <string, ApplicationUser> people = new Dictionary <string, ApplicationUser>(); foreach (Agency agency in model.Agencies) { if (!string.IsNullOrWhiteSpace(agency.AdminContactId) && !people.ContainsKey(agency.AdminContactId)) { people[agency.AdminContactId] = agency.AdminContact; } if (!string.IsNullOrWhiteSpace(agency.TechnicalContactId) && !people.ContainsKey(agency.TechnicalContactId)) { people[agency.TechnicalContactId] = agency.TechnicalContact; } if (!string.IsNullOrWhiteSpace(agency.CreatorId) && !people.ContainsKey(agency.CreatorId)) { people[agency.CreatorId] = agency.Creator; } } model.People = people; return(View(model)); }
public ActionResult ProcessApproval(ApproveModel am) { List <Approval> vMApproval = new List <Approval>(); Int32 iReturnValue = 0; Int32 iNextValue = 0; vMApproval = approvalRepository.GetApprovalListByStatus(am.ID, "P"); foreach (Approval ap in vMApproval) { if (ap.Status.ToUpper().Equals("P")) { if (am.Action.ToUpper().Equals("APPROVE")) { ap.Status = "A"; } else { ap.Status = "D"; ap.RejectReason = am.Reason; } string User = Session[SessionName.UserName.ToString()].ToString(); if (User.ToUpper().Equals("TTILLOTSON")) { User = "******"; } ap.UpdatedUserName = User; iReturnValue = approvalRepository.UpdateApprovalRoute(ap); iNextValue = approvalRepository.InsertNextLevelForApproval(ap); } } return(View(iReturnValue)); }
// GET: ReservationApprove public ActionResult Index(int?pageRes, int?pageSub, int?pageAllRes, int?pageAllSub, int?selectedTab) { string role = new Business.AccountBusiness().currentMember(); if (role == "U") { return(RedirectToAction("Login", "Account")); } if (selectedTab != null) { TempData["selectedTab"] = selectedTab; } int pageSize = 10; int pageNumberRes = (pageRes ?? 1); int pageNumberSub = (pageSub ?? 1); int pageNumberAllRes = (pageAllRes ?? 1); int pageNumberAllSub = (pageAllSub ?? 1); TempData["selectedTab"] = TempData["selectedTab"] == null ? 1 : TempData["selectedTab"]; string cookieName = FormsAuthentication.FormsCookieName; //Find cookie name HttpCookie authCookie = HttpContext.Request.Cookies[cookieName]; //Get the cookie by it's name FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value); //Decrypt it string UserName = ticket.Name; //You have the UserName! var user = webApi.GetUser(UserName); ApproveModel model = new ApproveModel(); model.Reservations = webApi.GetReservationsForApprove(user.USER_ID).ToPagedList(pageNumberRes, pageSize); model.Subscribers = webApi.GetSubscribersForApprove(user.USER_ID).ToPagedList(pageNumberSub, pageSize); model.AllReservations = webApi.GetAllReservationsForFacilityOwner(user.USER_ID).ToPagedList(pageNumberAllRes, pageSize); model.AllSubscibers = webApi.GetAllSubscribersForFacilityOwner(user.USER_ID).ToPagedList(pageNumberAllSub, pageSize); model.selectedTab = TempData["selectedTab"].ToString(); return(View(model)); }
public Result Approve_Method(IWebDriver WDriver, DataRow Approve_Data) { //KeyWordMethods kwm = new KeyWordMethods(); //Result result = new Result(); kwm._WDWait = kwm.WebDriver_Wait_Handler(WDriver, Constants.ExplicitWaitTime); objCommonMethods = new CommonMethods(); var results = new Result(); CreateRequirementRepository createRequirementRepository = new CreateRequirementRepository(); approveModel = createRequirementRepository.GetApproveData(Approve_Data); IList <string> approver_list = new List <string>(); Dictionary <string, string> dict_Approvers = new Dictionary <string, string>(); Boolean bVal_Approved = false; objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); List <string> listExistClients = new List <string>() { Constants.Discover, Constants.Ryder }; if (!listExistClients.Contains(approveModel.strClientName.ToLower())) { results = kwm.Client_Change_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, approveModel.strClientName); if (results.Result1 == KeyWords.Result_FAIL) { Thread.Sleep(100); //Note: Updated the code in the below method. results = kwm.Client_Change_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, approveModel.strClientName); if (results.Result1 == KeyWords.Result_FAIL) { Boolean bFlagDropDwon = false; try { bFlagDropDwon = WDriver.FindElement(By.XPath(KeyWords.XPath_supplierMenu_ClientDropDown)).Enabled; } catch { bFlagDropDwon = false; } if (bFlagDropDwon) { return(results); } } } } rerun: // click on main menu given name results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, approveModel.strMainMenuLink, approveModel.strSubMenuLink); if (results.Result1 == KeyWords.Result_FAIL) { Thread.Sleep(5000); results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, approveModel.strMainMenuLink, approveModel.strSubMenuLink); if (results.Result1 == KeyWords.Result_FAIL) { //results.ErrorMessage1 = "Unable to click on the Main menu"; return(results); } } if (approveModel.strSubMenuLink.ToLower().Contains("identified")) { if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_SearchBox_IdentifiedRequirements_regReqList), kwm._WDWait)) { Thread.Sleep(2000); } //Search requirement kwm.sendText(WDriver, KeyWords.locator_XPath, KeyWords.XPath_SearchBox_IdentifiedRequirements_regReqList, approveModel.str_Link_ReqNumber, false); //Wait for Requirement to load //if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_Img_Processing), kwm._WDWait)) //{ //kwm.waitForElementToBeClickable(WDriver, By.XPath("//table[@id='IdentifiedReqList']//td/a[contains(text(),'" + approveModel.str_Link_ReqNumber + "')]"), kwm._WDWait); //} kwm.waitForElementToBeVisible(WDriver, By.XPath(KeyWords.XPath_Img_IdentifiedHeartBeat), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_Img_IdentifiedHeartBeat), kwm._WDWait); Thread.Sleep(1000); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); //click on Heartbeat link kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Img_IdentifiedHeartBeat); } else { //if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_SearchBox_Requirements_regReqList), kwm._WDWait)) //{ // Thread.Sleep(2000); //} kwm.waitForElementToBeVisible(WDriver, By.XPath(KeyWords.XPath_SearchBox_Requirements_regReqList), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_SearchBox_Requirements_regReqList), kwm._WDWait); //Search requirement kwm.sendText(WDriver, KeyWords.locator_XPath, KeyWords.XPath_SearchBox_Requirements_regReqList, approveModel.str_Link_ReqNumber, false); //Wait for Requirement to load if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_Img_Processing), kwm._WDWait)) { kwm.waitForElementToBeClickable(WDriver, By.XPath("//table[@id='regReqList']//td/a[contains(text(),'" + approveModel.str_Link_ReqNumber + "')]"), kwm._WDWait); } kwm.waitForElementToBeVisible(WDriver, By.XPath("//table[@id='regReqList']//td/a[contains(text(),'" + approveModel.str_Link_ReqNumber + "')]"), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.XPath("//table[@id='regReqList']//td/a[contains(text(),'" + approveModel.str_Link_ReqNumber + "')]"), kwm._WDWait); Thread.Sleep(1000); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); kwm.waitForElementToBeVisible(WDriver, By.XPath(KeyWords.XPath_Img_HeartBeat), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_Img_HeartBeat), kwm._WDWait); Thread.Sleep(1000); //click on Heartbeat link kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Img_HeartBeat); } //wait for requirement heartbeat to load if (!kwm.waitForElementExists(WDriver, By.XPath("//div[contains(@class,'jsplumb-connected') and not(contains(@class,'approved')) ]/*[1]"), kwm._WDWait)) { kwm.waitForElementExists(WDriver, By.XPath("//div[contains(@class,'jsplumb-connected')]//strong"), kwm._WDWait); } objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); if (kwm.isElementDisplayedByXPath(WDriver, "//table[@id='workflowContainer']//td//div[not(contains(@class,'approved'))]/ancestor::tbody//following-sibling::*//div[not(contains(@class,'approved')) and not(@id='wEnd')]")) { //Add all the approvers to list foreach (IWebElement Ele in WDriver.FindElements(By.XPath("//div[contains(@class,'jsplumb-connected') and not(contains(@class,'approved')) and not(@id='wEnd')]"))) { if (Ele.GetAttribute("functioncode").Equals("0")) { approver_list.Add(Ele.FindElement(By.CssSelector("*")).Text); } else { String sTemp = Ele.GetAttribute("id"); objCommonMethods.js_Action_MouseOver_Element(WDriver, KeyWords.locator_ID, sTemp); //approver_list.Add(kwm.GetText_Xpath(WDriver, "//div[@role='tooltip' and not(contains(@style,'display: none'))]//ol[1]")._Var + "@MSP"); approver_list.Add(kwm.GetText_Xpath(WDriver, "//div[@role='tooltip' and not(contains(@style,'display: none'))]//ol[1]")._Var); objCommonMethods.js_Action_MouseLeave_Element(WDriver); } } } else { bVal_Approved = true; } kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_HearBeatMsgBox_Btn_Close_Close), kwm._WDWait); //Close heartBeat kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_HearBeatMsgBox_Btn_Close_Close); int iCount = 0; //Verifying if the count of the list is greater than zero if (approver_list.Count > 0 && !approver_list.Contains(null)) { foreach (string sApproverName in approver_list) { /*Checking the user in Client User Management*/ //Navigate to Administration->Client User Management results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, "Administration", "Client User Management"); if (results.Result1 == KeyWords.Result_FAIL) { Thread.Sleep(5000); results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, "Administration", "Client User Management"); if (results.Result1 == KeyWords.Result_FAIL) { //results.ErrorMessage1 = "Unable to click on the Main menu"; return(results); } } kwm.waitForElementToBeVisible(WDriver, By.Id(KeyWords.ID_Txt_ClientUserManagement_FirstName_DefaultContent_TxtFname), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.Id(KeyWords.ID_Txt_ClientUserManagement_FirstName_DefaultContent_TxtFname), kwm._WDWait); Thread.Sleep(1000); if (kwm.isElementDisplayed(WDriver, KeyWords.ID_Button_ClientUserManagement_Search_btnSearchClientUser)) { //Enter First Name kwm.sendText(WDriver, KeyWords.locator_ID, KeyWords.ID_Txt_ClientUserManagement_FirstName_DefaultContent_TxtFname, sApproverName.Split(',')[1].Trim().Split(' ')[0], false); //Enter Last Name kwm.sendText(WDriver, KeyWords.locator_ID, KeyWords.ID_Txt_ClientUserManagement_LastName_DefaultContent_TxtBoxLname, sApproverName.Split(',')[0].Trim(), false); //Click on Search button results = kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Btn_UserManagementSearch); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); } try { kwm.waitForElementToBeVisible(WDriver, By.XPath(KeyWords.XPath_Link__SearchResults_ClientUser), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_Link__SearchResults_ClientUser), kwm._WDWait); Thread.Sleep(1000); objCommonMethods.Action_Page_Down(WDriver); Thread.Sleep(500); if (kwm.isElementDisplayed(WDriver, KeyWords.ID_MSG_UserManagement)) { goto MSPUser; } if (kwm.isElementDisplayedByXPath(WDriver, KeyWords.XPath_Link__SearchResults_ClientUser)) { Thread.Sleep(2000); kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Link__SearchResults_ClientUser); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); } else { kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_Link__SearchResults_ClientUser), kwm._WDWait); kwm.jsClick(WDriver, KeyWords.locator_CSS, "#dgrClientUsers1 tbody tr.odd td a"); } goto ViewDesktop; } catch (Exception e) { results.ErrorMessage = "No such user(" + sApproverName + ") is available with the given data"; objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); results.Result1 = KeyWords.Result_FAIL; results.blnResult = false; return(results); } /*If the user is not a Client User , checking if the user is an MSP in MSP User Management.*/ //Navigate to Administration->MSP User Management MSPUser: results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, "Administration", "MSP User Management"); if (results.Result1 == KeyWords.Result_FAIL) { Thread.Sleep(5000); results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, "Administration", "MSP User Management"); if (results.Result1 == KeyWords.Result_FAIL) { //results.ErrorMessage1 = "Unable to click on the Main menu"; return(results); } } kwm.waitForElementToBeVisible(WDriver, By.Id(KeyWords.ID_Txt_MSPUserManagement_FirstName_DefaultContent_TxtFirstName), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.Id(KeyWords.ID_Txt_MSPUserManagement_FirstName_DefaultContent_TxtFirstName), kwm._WDWait); Thread.Sleep(1000); //Added by manjusha if (kwm.isElementDisplayed(WDriver, KeyWords.ID_Button_MspUserManagement_Search_btnSearchMspUser)) { //Enter First Name kwm.sendText(WDriver, KeyWords.locator_ID, KeyWords.ID_Txt_MSPUserManagement_FirstName_DefaultContent_TxtFirstName, sApproverName.Split(',')[1].Trim().Split(' ')[0], false); //Enter Last Name kwm.sendText(WDriver, KeyWords.locator_ID, KeyWords.ID_Txt_MSPUserManagement_LastName_DefaultContent_TxtLastName, sApproverName.Split(',')[0].Trim(), false); //Click on Search button results = kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Btn_UserManagementSearch); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); } try { kwm.waitForElementToBeVisible(WDriver, By.XPath(KeyWords.XPath_Link__SearchResults_MSPUser), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_Link__SearchResults_MSPUser), kwm._WDWait); Thread.Sleep(1000); objCommonMethods.Action_Page_Down(WDriver); Thread.Sleep(500); //if (kwm.isElementDisplayed(WDriver, KeyWords.ID_MSG_UserManagement)) //{ // goto sameMSP; //} if (kwm.isElementDisplayedByXPath(WDriver, KeyWords.XPath_Link__SearchResults_ClientUser)) { Thread.Sleep(2000); kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Link__SearchResults_ClientUser); if (results.Result1 == KeyWords.Result_FAIL) { kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Link__SearchResults_MspUser); } objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); } else { kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_Link__SearchResults_ClientUser), kwm._WDWait); kwm.jsClick(WDriver, KeyWords.locator_CSS, "#dgrClientUsers1 tbody tr.odd td a"); } } catch (Exception e) { results.ErrorMessage = "No such user(" + sApproverName + ") is available with the given data"; objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); results.Result1 = KeyWords.Result_FAIL; return(results); } ViewDesktop: kwm.waitForElementToBeVisible(WDriver, By.Id("mainContainer_1"), kwm._WDWait); try { kwm.jsClick(WDriver, KeyWords.locator_ID, KeyWords.ID_Link_ClientUser_ViewDesktop_DefaultContent_LblViewDesktop); if (results.Result1 == KeyWords.Result_FAIL) { objCommonMethods.Action_Page_Down(WDriver); results = kwm.jsClick(WDriver, KeyWords.locator_ID, KeyWords.ID_Link_ClientUser_ViewDesktop_DefaultContent_LblViewDesktop); } } catch (Exception e) { objCommonMethods.Action_Page_Down(WDriver); results = kwm.click(WDriver, KeyWords.locator_ID, KeyWords.ID_Link_ClientUser_ViewDesktop_DefaultContent_LblViewDesktop); if (results.Result1 == KeyWords.Result_FAIL) { return(results); } } kwm.waitForElementToBeVisible(WDriver, By.XPath("//ul[@class='logoDropdown']//li//div"), kwm._WDWait); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); // click on main menu given name results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, approveModel.strMainMenuLink, approveModel.strSubMenuLink); if (results.Result1 == KeyWords.Result_FAIL) { Thread.Sleep(5000); results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, approveModel.strMainMenuLink, approveModel.strSubMenuLink); if (results.Result1 == KeyWords.Result_FAIL) { //results.ErrorMessage1 = "Unable to click on the Main menu"; return(results); } } objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); if (approveModel.strSubMenuLink.ToLower().Contains("identified")) { results = kwm.Main_Sub_Menu_Click_NewApp(WDriver, KeyWords.locator_ID, KeyWords.ID_MainMenu, approveModel.strMainMenuLink, approveModel.strSubMenuLink); if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_SearchBox_IdentifiedRequirements_regReqList), kwm._WDWait)) { Thread.Sleep(2000); } //Search requirement kwm.sendText(WDriver, KeyWords.locator_XPath, KeyWords.XPath_SearchBox_IdentifiedRequirements_regReqList, approveModel.str_Link_ReqNumber, false); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); //Wait for Requirement to load if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_Img_Processing), kwm._WDWait)) { if (kwm.waitForElementToBeClickable(WDriver, By.XPath("//table[@id='IdentifiedReqList']//td[2]/a"), kwm._WDWait)) { results.ErrorMessage = "Requirement Link is displayed and clickable"; } else { if (!kwm.isElementDisplayedByXPath(WDriver, "//table[@id='IdentifiedReqList']//td[2]/a")) { objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); throw new Exception("Requirement link is not displayed for the client user"); } } } //click on the retrieved requirement WDriver.FindElement(By.XPath("//table[@id='IdentifiedReqList']//td[2]/a")).Click(); } else { //if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_SearchBox_Requirements_regReqList), kwm._WDWait)) //{ // Thread.Sleep(2000); //} kwm.waitForElementToBeVisible(WDriver, By.XPath(KeyWords.XPath_SearchBox_Requirements_regReqList), kwm._WDWait); kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_SearchBox_Requirements_regReqList), kwm._WDWait); //Search requirement kwm.sendText(WDriver, KeyWords.locator_XPath, KeyWords.XPath_SearchBox_Requirements_regReqList, approveModel.str_Link_ReqNumber, false); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); //Wait for Requirement to load if (!kwm.waitForElementExists(WDriver, By.XPath(KeyWords.XPath_Img_Processing), kwm._WDWait)) { if (kwm.waitForElementToBeClickable(WDriver, By.XPath("//table[@id='regReqList']//td[2]/a"), kwm._WDWait)) { results.ErrorMessage = "Requirement Link is displayed and clicable"; } else { if (!kwm.isElementDisplayedByXPath(WDriver, "//table[@id='regReqList']//td[2]/a")) { objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); throw new Exception("Requirement link is not displayed for the client user"); } } } //click on the retrieved requirement WDriver.FindElement(By.XPath("//table[@id='regReqList']//td[2]/a")).Click(); } //check (or) wait for approve link kwm.waitForElementToBeVisible(WDriver, By.XPath(KeyWords.XPath_Link_Approve_reqApprove), kwm._WDWait); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); if (approveModel.str_Link_Approve.ToLower().Contains("approve")) { Approver_Approve(WDriver); } else { // Approver_Reject(WDriver); iCount++; break; } objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); //click on Return Link if (!sApproverName.Contains("@")) { kwm.click(WDriver, KeyWords.locator_XPath, KeyWords.XPath_Link_Return); } //Wait till the page gets loaded kwm.waitForElementToBeClickable(WDriver, By.XPath(KeyWords.XPath_list_LogoDropdown), kwm._WDWait); objCommonMethods.SaveScreenShot_EachPage(WDriver, approveModel.strClientName + "_"); iCount++; if (!sQueueStatus.ToLower().Contains("approval")) { break; } } if (approver_list.Count != iCount) { goto rerun; } } else if (bVal_Approved) { results.Result1 = KeyWords.Result_PASS; results.ErrorMessage = KeyWords.MSG_strApprovesuccessfully; return(results); } else { results.Result1 = KeyWords.Result_FAIL; results.ErrorMessage = "Approver List is not available"; return(results); } results.Result1 = KeyWords.Result_PASS; results.ErrorMessage = KeyWords.MSG_strApprovesuccessfully; return(results); }
public JsonResult Receive(string signature, string timestamp, string nonce, PostBody body) { LogHelper.WriteProgramLogInFolder(DateTime.Now.ToString() + " 接收回调!", "DDCallBack"); Dictionary <int, string> dic = new Dictionary <int, string>(); dic.Add(900001, "加密明文文本非法"); dic.Add(900002, "加密时间戳参数非法"); dic.Add(900003, "加密随机字符串参数非法"); dic.Add(900004, "不合法的aeskey"); dic.Add(900005, "签名不匹配"); dic.Add(900006, "计算签名错误"); dic.Add(900007, "计算加密文字错误"); dic.Add(900008, "计算解密文字错误"); dic.Add(900009, "计算解密文字长度不匹配"); dic.Add(900010, "计算解密文字suiteKey不匹配"); //接收encrypt参数 string encryptStr = body.encrypt.Replace("{\"encrypt\":\"", "").Replace("\"}", ""); //注册时填写的token、aes_key、suitekey string token = ConfigurationManager.AppSettings["SuiteToken"]; //token = "123456";//钉钉测试文档中的token string aes_key = ConfigurationManager.AppSettings["Suiteaes_key"]; //aes_key = "4g5j64qlyl3zvetqxz5jiocdr586fn2zvjpa8zls3ij";//钉钉测试文档中的aes_key string suitekey = ConfigurationManager.AppSettings["DD_corpid"]; //suitekey = "suite4xxxxxxxxxxxxxxx";//钉钉测试文档中的suitekey #region 验证回调的url DingTalkCrypt dingTalk = new DingTalkCrypt(token, aes_key, suitekey); string sEchoStr = ""; int ret = dingTalk.VerifyURL(signature, timestamp, nonce, encryptStr, ref sEchoStr); if (ret != 0) { string message = ""; if (dic.ContainsKey(ret)) { message = dic.Where(e => e.Key == ret).FirstOrDefault().Value; } LogHelper.WriteProgramLogInFolder(DateTime.Now.ToString() + " 验证回调发生错误,错误代码为:" + ret + " " + message, "DDCallBack"); return(Json(new object())); } #endregion #region 解密接受信息,进行事件处理 string plainText = ""; ret = dingTalk.DecryptMsg(signature, timestamp, nonce, encryptStr, ref plainText); if (ret != 0) { string message = ""; if (dic.ContainsKey(ret)) { message = dic.Where(e => e.Key == ret).FirstOrDefault().Value; } LogHelper.WriteProgramLogInFolder(DateTime.Now.ToString() + " 解密信息发生错误,错误代码为:" + ret + " " + message, "DDCallBack"); return(Json(new object())); } Hashtable tb = (Hashtable)JsonConvert.DeserializeObject(plainText, typeof(Hashtable)); string eventType = tb["EventType"].ToString(); string res = "success"; LogHelper.WriteProgramLogInFolder(DateTime.Now.ToString() + " 接收到的事件类型为:" + eventType, "DDCallBack"); switch (eventType) { case "bpms_task_change": //审批任务开始,结束,转交 #region 执行代码 在此处添加业务逻辑代码,处理获取的审批单信息 ApproveModel modelTask = JsonConvert.DeserializeObject <ApproveModel>(plainText); #endregion break; case "bpms_instance_change": //审批实例开始,结束 #region 执行代码 在此处添加业务逻辑代码,处理获取的审批单信息 ApproveModel modelInstance = JsonConvert.DeserializeObject <ApproveModel>(plainText); #endregion break; default: break; } timestamp = DateTime.Now.GetTimeStamp().ToString(); string encrypt = ""; string signature2 = ""; dingTalk = new DingTalkCrypt(token, aes_key, suitekey); ret = dingTalk.EncryptMsg(res, timestamp, nonce, ref encrypt, ref signature2); if (ret != 0) { string message = ""; if (dic.ContainsKey(ret)) { message = dic.Where(e => e.Key == ret).FirstOrDefault().Value; } LogHelper.WriteProgramLogInFolder(DateTime.Now.ToString() + " 解密信息发生错误,错误代码为:" + ret + " " + message, "DDUserInfoUpdate"); return(Json(new object())); } Hashtable jsonMap = new Hashtable { { "msg_signature", signature2 }, { "encrypt", encrypt }, { "timeStamp", timestamp }, { "nonce", nonce } }; return(Json(jsonMap)); #endregion }