public bool RecordNewIncident(CreateIncidentInput incidentRequest) { var incident = _objectMapper.Map <Incident>(incidentRequest); incident.PositivitySentimentScore = _languageAnalysys.GetSentimentScore(incident.Description); var phrases = _languageAnalysys.GetKeyPrases(incident.Description); var incidentTags = (from phrase in phrases let databasePhrase = _tagRepository.GetAll().FirstOrDefault(tag => tag.Name == phrase) select databasePhrase == null ? _tagRepository.InsertAndGetId(new Tag { Name = phrase }) : databasePhrase.Id).ToList(); var imageTags = _imageAnalysisService.AnalyzeImage(incidentRequest.ImageBytes).Result.Description.Tags; incidentTags.AddRange((from imageTag in imageTags let databasePhrase = _tagRepository.GetAll().FirstOrDefault(tag => tag.Name == imageTag) select databasePhrase == null ? _tagRepository.InsertAndGetId(new Tag { Name = imageTag }) : databasePhrase.Id).ToList()); incident.ImageId = _imageRepository.InsertAndGetId(new Image { ImagePath = incidentRequest.ImageName }); var incidentId = _incidentRepository.InsertAndGetId(incident); foreach (var incidentTag in incidentTags) { _incidentTagRepository.Insert(new IncidentTag { IncidentId = incidentId, TagId = incidentTag }); } return(true); }
public IActionResult Test(string description) => Ok(_languageAnalysys.GetSentimentScore(description));