public async Task <IActionResult> UpdateFieldStatus(Guid fieldId)
        {
            if (OrganisationId == Guid.Empty)
            {
                return(Forbid());
            }

            _bus.Publish(new CheckFieldOnDemand()
            {
                FieldId = fieldId
            });

            return(Ok("Message was sent"));
        }
示例#2
0
        public static void CheckWeeds(Field field, IDataProvider dataProvider, IRabbitMqBus bus)
        {
            var result = WeedCheckDataGenerator.Generate(dataProvider.GetWeedsAsync().Result);

            if (result != null)
            {
                var severity = DangerLevel.Low;
                if (result.Percentage >= 10 && result.Percentage <= 60)
                {
                    severity = DangerLevel.High;
                }
                else if (result.Percentage > 60)
                {
                    severity = DangerLevel.Critical;
                }

                var message = new WeedDetectedMessage()
                {
                    FieldId        = field.Id,
                    OrganizationId = field.OrganizationId,
                    WeedId         = result.WeedId,
                    Percentage     = result.Percentage,
                    Severity       = severity
                };

                bus.Publish(message);
            }
        }
示例#3
0
        public static void CheckPets(Field field, IDataProvider dataProvider, IRabbitMqBus bus)
        {
            var result = PestCheckDataGenerator.Generate(dataProvider.GetPestsAsync().Result);

            if (result != null)
            {
                var severity = DangerLevel.Low;
                if (result.CountOnSquareMeter >= 50 && result.CountOnSquareMeter < 100)
                {
                    severity = DangerLevel.High;
                }
                else if (result.CountOnSquareMeter > 100)
                {
                    severity = DangerLevel.Critical;
                }

                var message = new PestDetectedMessage()
                {
                    FieldId            = field.Id,
                    OrganizationId     = field.OrganizationId,
                    PestId             = result.PestId,
                    CountOnSquareMeter = result.CountOnSquareMeter,
                    Severity           = severity
                };

                bus.Publish(message);
            }
        }
        public async Task <ActionResult> AddTicket(AddTicketCommandRequest command)
        {
            var response = await _eventBus.Issue(command);

            if (response.IsSuccess)
            {
                _rabbitMqBus.Publish(new TicketSmsEvent("Test", response.Data.TrackingCode));
            }
            return(Ok(response));
        }
示例#5
0
 public async Task<Credentials> CreateAsync(UserDto userDto)
 {
     var user = _mapper.Map<User>(userDto);
     user.Id = Guid.NewGuid();
     user.Role = userDto.Role;
     user.Status = UserStatus.Active;
     var generatedPassword = PasswordManager.GeneratePassword(PasswordManager.CharSet.All, 8);
     _passwordManager.SetHashedPassword(user, generatedPassword);
     user.OrganisationName = (await _organisationRepository.GetAsync(userDto.OrganisationId)).Name;
     await _repository.CreateAsync(user);
     try
     {
         _bus.Publish(new UserRegisteredMessage() {Email = userDto.Email, Password = generatedPassword});
     }
     catch(Exception ex)
     {
         throw new Exception(ex.Message);
     }
     return new Credentials()
     {
         Email = userDto.Email,
         Password = generatedPassword
     };
 }