public async Task <IActionResult> UpdateFieldStatus(Guid fieldId) { if (OrganisationId == Guid.Empty) { return(Forbid()); } _bus.Publish(new CheckFieldOnDemand() { FieldId = fieldId }); return(Ok("Message was sent")); }
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); } }
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)); }
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 }; }