public async Task <ActionResult> SendReport() { var report = new AzureMLAnomalyReport { Date = DateTime.UtcNow, AnomalyGroups = new List <AzureMLAnomalyGroup>(), CollectedDataTypeOfReport = CollectedDataType.AggregationForHour }; var reportMessage = new InstanceAnomalyReportMessage { AnomalyReportId = Guid.NewGuid(), InstanceId = Guid.Parse("11c1b774-b459-4cc1-9f70-a54c8964802d") }; await _serviceBusProvider.SendAnomalyReportMessage(reportMessage); return(Ok()); }
private Task SendMLReport(IEnumerable <CollectedDataDto> data, CollectedDataType reportType) { var results = (from d in data group d by d.ClientId into g select new { ClientId = g.Key, CollectedDatas = g.ToList() }).ToList(); var tasks = results.Select( async r => { try { var result = await _anomalyDetector.AnalyzeData(r.CollectedDatas); result.CollectedDataTypeOfReport = reportType; var report = new InstanceAnomalyReport { Id = Guid.NewGuid(), ClientId = r.ClientId, Date = result.Date, AnomalyGroups = result.AnomalyGroups, CollectedDataTypeOfReport = result.CollectedDataTypeOfReport }; await _reportsRepository.AddReportAsync(report); var reportMessage = new InstanceAnomalyReportMessage { AnomalyReportId = report.Id, InstanceId = r.ClientId }; Debug.WriteLine($"Generated id of report {report.Id}"); await _serviceBusProvider.SendAnomalyReportMessage(reportMessage); } catch (Exception ex) { _logger.LogError(ex, $"Unhandled error occurred while analyzing Anomalies of instance with id: {r?.ClientId}"); // TODO: Maybe send notification to user about that error that analyzing Anomalies of instance with id was unsuccessful } }); return(Task.WhenAll(tasks)); //var res = Parallel.ForEach( // results, // async obj => // { // try // { // var result = await _anomalyDetector.AnalyzeData(obj.CollectedDatas); // result.CollectedDataTypeOfReport = reportType; // var report = new InstanceAnomalyReport // { // Id = Guid.NewGuid(), // ClientId = obj.ClientId, // Date = result.Date, // AnomalyGroups = result.AnomalyGroups, // CollectedDataTypeOfReport = // result.CollectedDataTypeOfReport // }; // await _reportsRepository.AddReportAsync(report); // var reportMessage = // new InstanceAnomalyReportMessage { AnomalyReportId = report.Id, InstanceId = obj.ClientId }; // Debug.WriteLine($"Generated id of report {report.Id}"); // await _serviceBusProvider.SendAnomalyReportMessage(reportMessage); // } // catch (Exception ex) // { // _logger.LogError(ex, $"Unhandled error occurred while analyzing Anomalies of instance with id: {obj?.ClientId}"); // // TODO: Maybe send notification to user about that error that analyzing Anomalies of instance with id was unsuccessful // } // }); }