Example #1
0
        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));
        }
Example #3
0
        public ActionResult Approve(string travelRequestId, int badgeNumber)
        {
            var approveModel = new ApproveModel()
            {
                TravelRequestId = travelRequestId,
                BadgeNumber     = badgeNumber
            };

            return(View("Approve", approveModel));
        }
Example #4
0
        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 }));
        }
Example #5
0
        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));
        }
Example #7
0
        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));
            }
        }
Example #8
0
        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));
        }
Example #10
0
        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));
        }
Example #11
0
        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));
        }
Example #12
0
        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));
        }
Example #13
0
        // 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));
        }
Example #14
0
        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);
        }
Example #15
0
        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
        }