private WebMethodResponse createHPSMTicket(SNAPDatabaseDataContext db, SNAP_Workflow accessTeamWF, DateTime? dueDate, SNAP_Request req) { string updatedDescription = string.Format("Supplemental Access Process Request Id: {0}\r\nAffected End User Id: {1}\r\nRequested By: {2}\r\n-------------------------------------------------------\r\n{3}" , req.pkId, req.userId, req.submittedBy, requestDescription); Quote q = new Quote(); q.Category = "apollo request"; q.Subcategory = "Employee Management Support Service"; q.Priority = "4 - R3 Regular"; q.RequestedEndDate = dueDate ?? DateTime.Now.AddDays(1); q.CurrentPhase = "Working"; q.ServiceContact = Regex.Replace(req.userId, @"^a\.", ""); q.PrimaryContact = Regex.Replace(req.submittedBy, @"^a\.", ""); q.Description = new List<string>() {updatedDescription}; q.PartNumber = "ag1144"; //Server Privileged Access - Add, modify, or remove q.ItemCount = "1"; q.ItemQuantity = "1"; q.SaveTicket(); // uncomment this line to do end-end test req.ticketNumber = q.RequestID; var hpsmlink = ConfigurationManager.AppSettings["HPSMLink"]; addAccessTeamComment( accessTeamWF , string.Format("Due Date: {0} | Service Desk Ticket: <a target=\"_blank\" href=\"{2}\">{1}</a>" , Convert.ToDateTime(dueDate).ToString("MMM d, yyyy") , req.ticketNumber , hpsmlink) , CommentsType.Ticket_Created); db.SubmitChanges(); return new WebMethodResponse(true, "Ticket Creation", "Success"); ; }
private WebMethodResponse createCASDTicket(SNAPDatabaseDataContext db, SNAP_Workflow accessTeamWF, DateTime? dueDate, SNAP_Request req) { var changeRequest = new ServiceDesk.ChangeRequest(Apollo.ServiceDesk.SDConfig.Instance.Login, Apollo.ServiceDesk.SDConfig.Instance.Password); string updatedDescription = string.Format("Supplemental Access Process Request Id: {0}\r\nAffected End User Id: {1}\r\nRequested By: {2}\r\n-------------------------------------------------------\r\n{3}" , req.pkId, req.userId, req.submittedBy, requestDescription); if (requestDescription.Length > 5000) { return new WebMethodResponse(false, "Ticket Creation Error", "Request Content Too Long. Please split the request"); } changeRequest.CategoryName = "Server.Systems.Privileged Access"; changeRequest.Submitter.Get("svc_Cap"); changeRequest.AffectedUser.Get(Regex.Replace(req.userId, @"^a\.", "")); // remove a. acct changeRequest.Attributes["description"] = updatedDescription; changeRequest.Create(); req.ticketNumber = changeRequest.Number; var handler = changeRequest.Handle.Split(':')[1]; // chg:12345 var sdlink = ConfigurationManager.AppSettings["SDLink"] + handler; addAccessTeamComment( accessTeamWF , string.Format("Due Date: {0} | Service Desk Ticket: <a target=\"_blank\" href=\"{2}\">{1}</a>" , Convert.ToDateTime(dueDate).ToString("MMM d, yyyy") , req.ticketNumber , sdlink) , CommentsType.Ticket_Created); db.SubmitChanges(); return new WebMethodResponse(true, "Ticket Creation", "Success"); }
protected ApprovalWorkflow(int id) { Id = id; db = new SNAPDatabaseDataContext(); wf = db.SNAP_Workflows.Single(w => w.pkId == Id); req = wf.SNAP_Request; accessReq = new AccessRequest(req.pkId); accessTeamWF = accessReq.FindApprovalTypeWF(db, (byte)ActorApprovalType.Workflow_Admin)[0]; }
private bool reqStateTransition(SNAP_Request req, RequestState reqFr, RequestState reqTo, SNAP_Workflow accessTeamWF, WorkflowState wfFr, WorkflowState wfTo) { var result = false; if (req.statusEnum == (byte)reqFr) { var accessTeamWFState = accessTeamWF.SNAP_Workflow_States.Single(s => s.completedDate == null); if (accessTeamWFState.workflowStatusEnum == (byte)wfFr) { stateTransition(ActorApprovalType.Workflow_Admin, accessTeamWF,wfFr,wfTo); if (reqFr != reqTo) { req.statusEnum = (byte) reqTo; req.lastModifiedDate = DateTime.Now; } result = true; } } return result; }
private void initializeData(SNAPDatabaseDataContext db, WorkflowState state, out SNAP_Request req, out SNAP_Workflow accessTeamWF, out DateTime? dueDate) { req = db.SNAP_Requests.Single(r => r.pkId == _id); accessTeamWF = req.SNAP_Workflows.Single(x => x.actorId == AccessTeamActorId); dueDate = accessTeamWF.SNAP_Workflow_States.Single( s => s.completedDate == null && s.workflowStatusEnum == (byte)state).dueDate; }
private List<int> getToDeletedActorList(SNAP_Request req, List<int> actorIds) { var orgActorList = new List<int>(); foreach (var wf in req.SNAP_Workflows) { if (wf.actorId != 1) orgActorList.Add(wf.actorId); } return orgActorList.Except(actorIds).ToList(); }