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));
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 private bool validate(RPATicket ticket)
 {
     return(true);
 }
 private void storeResultToDB(RPATicket ticket)
 {
     checkAndOpenConn();
     //store results success and error
 }