protected override Task ReceiveMessageImplAsync(BrokeredMessage message, MessageSession session, CancellationToken cancellationToken) { ServiceEventSource.Current.ServiceMessage(_service, $"Handling queue message {message.MessageId} in session {session?.SessionId ?? "none"}"); RPATicket ticket = null; try { ticket = message.GetBody <RPATicket>(); bool isValid = validate(ticket); if (isValid) { executionScript(ticket); } else { sendToErrorQueue(ticket); } } catch (Exception e) { ticket.Error = e.Message; sendToErrorQueue(ticket); return(Task.FromResult(false)); } storeResultToDB(ticket); return(Task.FromResult(true)); }
protected void Page_Load(object sender, EventArgs e) { ticketID = Request.QueryString.Get("TicketID"); if (ticketID == null || ticketID.Length == 0) { return; } CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("blobStorageConn")); // Create the blob client. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); // Retrieve reference to a previously created container. CloudBlobContainer container = blobClient.GetContainerReference("rpaticketsblob"); // Retrieve reference to a blob named "photo1.jpg". CloudBlockBlob blockBlob = container.GetBlockBlobReference(ticketID); string strTicket = blockBlob.DownloadText(); XmlSerializer serializer = new XmlSerializer(new RPATicket().GetType()); StringReader rdr = new StringReader(strTicket); ticket = (RPATicket)serializer.Deserialize(rdr); }
private void executionScript(RPATicket ticket) { try { //connect to remote machine and execute } catch (Exception e) { Console.Write(e.Message); } }
private void sendToErrorQueue(RPATicket ticket) { try { BrokeredMessage ticketMsg = new BrokeredMessage(ticket); _errorQueueClient.Send(ticketMsg); } catch (Exception e) { Console.Write(e.Message); } }
private string getFirstMatchFrom_Ticket_Desc(RPATicket ticket, string pattern) { String variable = ""; String desc = ticket.TicketDescription; var matches = Regex.Matches(desc, pattern); foreach (Match m in matches) { variable = m.Groups[0].Value; break; } return(variable); }
public RPATicket GetSearchResults(RPATicket ticket) { string strIndexPath = getLucenePath(); Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30); string searchTerm = ""; foreach (String category in ticket.Categories) { searchTerm += " " + category; } searchTerm = searchTerm.Trim(); Directory luceneIndexDirectory = FSDirectory.Open(strIndexPath); IndexSearcher searcher = new IndexSearcher(luceneIndexDirectory); QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "KeyWords", analyzer); Query query = parser.Parse(searchTerm); TopDocs hitsFound = searcher.Search(query, 200); List <RPAResult> results = new List <RPAResult>(); RPAResult _result = null; for (int i = 0; i < hitsFound.TotalHits; i++) { _result = new RPAResult(); Document doc = searcher.Doc(hitsFound.ScoreDocs[i].Doc); _result.ID = int.Parse(doc.Get("ID")); _result.ScriptID = int.Parse(doc.Get("ScriptID")); _result.ScriptText = doc.Get("ScriptText"); _result.KeyWords = doc.Get("KeyWords"); _result.UserConfirmationMsg = doc.Get("UserConfirmationMsg"); float score = hitsFound.ScoreDocs[i].Score; _result.Score = score; results.Add(_result); } ticket.Matches = results; return(ticket); }
private RPATicket populateVariables(RPATicket ticket) { for (int i = 0; i < ticket.Matches.Count; i++) { RPAResult result = ticket.Matches[i]; String userMsg = result.UserConfirmationMsg; String scriptText = result.ScriptText; var pattern = @"\{(.*?)\}"; var matches = Regex.Matches(userMsg, pattern); foreach (Match m in matches) { String variable = m.Groups[1].Value; String VarRegex = getPatternFromDB(variable); string value = getFirstMatchFrom_Ticket_Desc(ticket, VarRegex); userMsg = userMsg.Replace("{" + variable + "}", value); } matches = Regex.Matches(scriptText, pattern); foreach (Match m in matches) { String variable = m.Groups[1].Value; String VarRegex = getPatternFromDB(variable); string value = getFirstMatchFrom_Ticket_Desc(ticket, VarRegex); scriptText = scriptText.Replace("{" + variable + "}", value); } ticket.Matches[i].UserConfirmationMsg = userMsg; ticket.Matches[i].ScriptText = scriptText; } return(ticket); }
private bool validate(RPATicket ticket) { return(true); }
private void storeResultToDB(RPATicket ticket) { checkAndOpenConn(); //store results success and error }