public Forestry.Models.DTO.WorkRequest GetWorkRequestFromApi(Forestry.Models.DTO.WorkPacket workPacket) { //get the work request resourse dynamic workRequest = _workRequestRequestor.Get(new Uri(BaseManagedWorkApiUri + ResolveCurlyBrackets(Properties.Settings.Default.ManagedWorkOrderApiResourse_WorkRequest, workPacket.WorkRequestId.ToString()))); //transform dynamic into work request DTO and resolve HATEOAS uri's Forestry.Models.DTO.WorkRequest wr = TransformDynamicWorkRequest(workRequest); Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][SUCCESS]-retrieved Managed Work Order data"); return(wr); }
public void CreateRemedyTicket(Forestry.Models.DTO.WorkRequest workRequest, Forestry.Models.DTO.WorkPacket workPacket, List <ValidationResult> errors) { try { Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][BEGIN--]-sending invalid data to Remedy"); string allErrors = string.Empty; foreach (var str in errors) { allErrors += str + $"\r\n"; } string notes = "[WR: " + workPacket.WorkRequestId + " " + "WP: " + workPacket.WorkPacketId + "]" + "\r\n" + allErrors; HttpResponseMessage hrm = _incidentRequestor.Post( new Uri(Properties.Settings.Default.RemedyUriHost + Properties.Settings.Default.RemedyUri), new Incident { AssignedSupportGroup = "CO - Work Management Process", ClientService = "IT - Work Management", Company = "WEC Business Services", //or We Energies Impact = "4-Minor/Localized", Urgency = "4-Low", Notes = notes, Summary = "STORMS to Forestry validation failed." } ); var incident = hrm.Headers.Single(m => m.Key == "X-Id"); string incidentNumber = incident.Value.ToList()[0]; Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][SUCCESS]-" + incidentNumber + "" + " created in Remedy"); } catch (HttpResponseException exception) { Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][FAILED-]-failed to send invalid data to Remedy"); Console.WriteLine("*************Http Response Error***************"); Console.WriteLine("Http Status Code:" + exception.Response.StatusCode.ToString()); foreach (var header in exception.Response.Headers) { Console.WriteLine(header.Key + ", " + header.Value.ToList()[0]); } Console.WriteLine("*************Http Response Error***************"); } }
public void ProcessWorkPacket(Forestry.Models.DTO.WorkPacket workPacket) { Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][BEGIN--]-processing..."); Models.DTO.WorkRequest workRequest = null; try { //call managed work API to get all the data Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][BEGIN--]-retrieving Managed Work Order data"); workRequest = GetWorkRequestFromApi(workPacket); if (workRequest != null) { //validate work request Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][BEGIN--]-validating WorkRequest data"); List <ValidationResult> validationResults = ValidateWorkRequest(workRequest); //process validation if (validationResults == null || !validationResults.Any()) { Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][SUCCESS]-valid WorkRequest data"); ValidationSuccess(workPacket, workRequest); } else { Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "][SUCCESS]-invalid WorkRequest data"); ValidationInvalid(workPacket, workRequest, validationResults); } } else { Console.WriteLine("[WR:" + workPacket.WorkRequestId + " " + "WP:" + workPacket.WorkPacketId + "]" + " NOT FOUND"); } } catch (Exception ex) { //add to tracking AddStormsTracking(workRequest, workPacket, "FOBATCH", "FODATCHK", "Failed to create order in Forestry system"); //create IT Remedy Ticket CreateRemedyTicket(workRequest, workPacket, ex); Environment.ExitCode = 1; } }