Ejemplo n.º 1
0
        public async Task Handle(PestDetectedMessage message, CancellationToken cancellationToken)
        {
            Console.WriteLine($"Weed detected:{message.FieldId} {message.OrganizationId} {message.CountOnSquareMeter} {message.Severity}");

            var field = await _fieldService.GetAsync(message.FieldId, message.OrganizationId);

            field.Status = message.Severity == DangerLevel.Low || message.Severity == DangerLevel.High
                ? FieldStatus.NeedAttention
                : FieldStatus.Critical;
            await _fieldService.UpdateAsync(field);

            var rec = await _recommendationService.GetPestDetectedRecommendation(message);

            var pest = await _pestService.GetAsync(message.PestId);

            _messageService.AddPestDetectedMessage(new PestDetectedMessageWithRecommendation()
            {
                FieldId        = message.FieldId,
                OrganisationId = message.OrganizationId,
                Recommendation = rec,
                Severity       = message.Severity,
                PestName       = pest.Kind
            });
        }