public async Task <UserDto> Handle(CreateUserCommand request, CancellationToken cancellationToken) { var input = request.Data.Attributes; var user = new Users_() { name = input.name, username = input.username, email = input.email, password = input.password, address = input.address }; _context.UsersData.Add(user); await _context.SaveChangesAsync(); var user1 = _context.UsersData.First(x => x.username == request.Data.Attributes.username); var target = new Target() { Id = user.id, Email_destination = user.email }; var command = new NotifInput() { Title = "rabbit - test", Message = "this is only testing", Type = "email", From = 123456, Targets = new List <Target>() { target } }; var attributes = new Attribute <NotifInput>() { Attributes = command }; var httpContent = new CommandDTO <NotifInput>() { Data = attributes }; var jsonObject = JsonConvert.SerializeObject(httpContent); var content = new StringContent(jsonObject, Encoding.UTF8, "application/json"); await client.PostAsync("http://localhost:5800/api/notification", content); return(new UserDto { message = "Success add a user data", success = true }); }
public async Task <UserDto> Handle(CreateUserCommand request, CancellationToken cancellationToken) { var user = new Users_() { name = request.Data.Attributes.name, username = request.Data.Attributes.username, email = request.Data.Attributes.email, password = request.Data.Attributes.password, address = request.Data.Attributes.address }; _context.UsersData.Add(user); await _context.SaveChangesAsync(cancellationToken); var user1 = _context.UsersData.First(x => x.username == request.Data.Attributes.username); var target = new Target() { Id = user.id, Email_destination = user.email }; var client = new HttpClient(); var command = new NotifInput() { Title = "rabbit-test", Message = "this is only testing", Type = "email", From = 98780, Target = new List <Target>() { target } }; var attributes = new Attribute <NotifInput>() { Attributes = command }; var httpContent = new CommandDTO <NotifInput>() { Data = attributes }; var jsonObject = JsonConvert.SerializeObject(httpContent); //var content = new StringContent(jsonObject, Encoding.UTF8, "application/json"); //await client.PostAsync("http://localhost:5800/api/notification", content); var factory = new ConnectionFactory() { HostName = "localhost" }; using (var connection = factory.CreateConnection()) using (var channel = connection.CreateModel()) { channel.ExchangeDeclare(exchange: "halopakpos", "fanout"); channel.QueueDeclare(queue: "pakpos", durable: true, exclusive: false, autoDelete: false, arguments: null); channel.QueueBind("pakpos", "halopakpos", routingKey: ""); var body = Encoding.UTF8.GetBytes(jsonObject); var properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.BasicPublish(exchange: "halopakpos", routingKey: "", basicProperties: null, body: body); Console.WriteLine("Message has sent"); } return(new UserDto { message = "a user has been added.", success = true }); }