public async Task <IActionResult> PutEventXmlItem(long id, EventXmlItem EventXmlItem) { if (id != EventXmlItem.PackageId) { return(BadRequest()); } _context.Entry(EventXmlItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EventXmlItemExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <EventXmlItem> > PostEventXmlItem(EventXmlItem eventXmlItem) { Stopwatch processingStopwatch = Stopwatch.StartNew(); _context.EventXmlItems.Add(eventXmlItem); await _context.SaveChangesAsync(); processingStopwatch.Stop(); // Set return values eventXmlItem.ProcessingDateTime = DateTime.UtcNow; eventXmlItem.Count = 1; eventXmlItem.ProcessingServer = Environment.MachineName; return(CreatedAtAction("GetEventXmlItem", new EventXmlItem { PackageId = eventXmlItem.PackageId }, JsonConvert.SerializeObject(eventXmlItem))); }
private static async Task SendEventXml(string eventXml) { bool uploadSuccessful; try { // Get a random server name from the configured list string receiverServer = "localhost"; string receiverPort = "5000"; Stopwatch uploadStopWatch = Stopwatch.StartNew(); // Create a client, and add the authentication cert var _clientHandler = new HttpClientHandler(); HttpClient Client = new HttpClient(_clientHandler); var eventXmlItem = new EventXmlItem { PackageId = 0, EventXml = eventXml, UploadServer = Environment.MachineName, UploadDateTime = DateTime.UtcNow }; // Build the client data for the file metrics using (var content = new MultipartFormDataContent()) { try { string uri = $"http://{receiverServer}:{receiverPort}/api/EventXml"; var parameters = Newtonsoft.Json.JsonConvert.SerializeObject(eventXmlItem); var req = WebRequest.Create(uri); req.Method = "POST"; req.ContentType = "application/json"; byte[] bytes = Encoding.ASCII.GetBytes(parameters); req.ContentLength = bytes.Length; using (var os = req.GetRequestStream()) { os.Write(bytes, 0, bytes.Length); os.Close(); } var stream = req.GetResponse().GetResponseStream(); if (stream != null) { using (stream) using (var sr = new StreamReader(stream)) { string streamResult = sr.ReadToEnd().Trim(); var returnEventXmlItem = JsonConvert.DeserializeObject <EventXmlItem>(streamResult); PrintToConsole( $"Processed {returnEventXmlItem.Count} record(s) in {(returnEventXmlItem.ProcessingDateTime - returnEventXmlItem.UploadDateTime).TotalMilliseconds:N2} milliseconds."); } } } catch (Exception ex) { ExceptionHandler(ex); uploadSuccessful = false; } Client.Dispose(); } uploadStopWatch.Stop(); List <SentinelCostMetric> metricList = new List <SentinelCostMetric> { new SentinelCostMetric { MachineName = Environment.MachineName, ServiceName = ConfigHelperObject.ServiceName, OccurenceUtc = DateTime.UtcNow, PackageGuid = eventDictionaryList.EventDictionaryListItems[0].PackageGuid, PackageId = eventDictionaryList.EventDictionaryListItems[0].PackageId, EventType = Enum.GetName(typeof(EventType), EventType.Send), MetricData = new Dictionary <string, object>() { { "UploadTime", ConfigHelperObject.GetStopWatchDictionary(uploadStopWatch) } } } }; ConfigHelperObject.LoadMetricsToKusto("Metrics", metricList); } catch (Exception ex) { ExceptionHandler(ex); } }