private static void MapTagsAndObject(ImageAIDetectionResult imageAIResult, MediaAI mediaAi) { var tags = new List <MediaAITag>(); var objects = new List <MediaAIObject>(); foreach (ImageAIDetectionItem?item in imageAIResult.Items) { switch (item.Type) { case "tag": tags.Add(new MediaAITag { Name = item.Name, Confidence = item.Probability, Source = AISource.ImageAI }); break; case "object": objects.Add(new MediaAIObject { Name = item.Name, Confidence = item.Probability, Source = AISource.ImageAI, Box = item.Box }); break; } } mediaAi.Tags = tags; mediaAi.Objects = objects; }
public async Task SaveImageAIDetectionAsync( ImageAIDetectionResult imageAIResult, CancellationToken cancellationToken) { var mediaAi = new MediaAI { Id = Guid.NewGuid(), MediaId = imageAIResult.MediaId }; MediaAISourceInfo sourceInfo = new() { AnalysisDate = DateTime.UtcNow, Source = AISource.ImageAI, Success = imageAIResult.Success }; if (imageAIResult.Success) { MapTagsAndObject(imageAIResult, mediaAi); } else { sourceInfo.Data.Add("Error", imageAIResult.Error); } mediaAi.SourceInfo = new List <MediaAISourceInfo> { sourceInfo }; await SaveMediaAI(mediaAi, cancellationToken); }
public async Task <IActionResult> AddImageAIData([FromBody] ImageAIDetectionResult imageAIResult, CancellationToken cancellationToken) { await _mediaAIService.SaveImageAIDetectionAsync(imageAIResult, cancellationToken); return(Ok(true)); }