public void SendMessage(TechTalkDTO talk) { Console.WriteLine("Inside send message"); var factory = new ConnectionFactory() { HostName = "rabbitmq" }; Console.WriteLine("Inside connection factory"); using (var connection = factory.CreateConnection()) { Console.WriteLine("Inside connection"); using (var channel = connection.CreateModel()) { Console.WriteLine("Inside model"); channel.ExchangeDeclare(exchangeName, "fanout"); var body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(talk)); channel.BasicPublish(exchange: exchangeName, routingKey: routingKey, basicProperties: null, body: body); Console.WriteLine(" [x] Sent {0}", talk); } } }
public IActionResult Details(int id) { string url = String.Concat(API_BASE_URL, id); TechTalkDTO techTalk = null; try { var client = new WebClient(); var response = client.DownloadString(url); Console.WriteLine($"Data returned from API call : {response}"); techTalk = JsonConvert.DeserializeObject <TechTalkDTO>(response); } catch (Exception ex) { Console.WriteLine(ex.Message); } if (techTalk != null) { return(View(techTalk)); } else { return(NotFound()); } }
public IActionResult Create([FromForm] TechTalkViewModel viewModel) { Console.WriteLine($"Talk name : {viewModel.TechTalkName}"); Console.WriteLine($"Category ID : {viewModel.CategoryId}"); TechTalkDTO dto = new TechTalkDTO { TechTalkName = viewModel.TechTalkName, CategoryId = viewModel.CategoryId, LevelId = viewModel.LevelId }; try { var client = new HttpClient(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); Console.WriteLine($"Data is about to be sent to API call"); string stringData = JsonConvert.SerializeObject(viewModel); var contentData = new StringContent(stringData, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = client.PostAsync(API_BASE_URL, contentData).Result; } catch (Exception ex) { Console.WriteLine(ex.Message); } return(RedirectToAction(nameof(Index))); }
public IActionResult Create([FromBody] TechTalkDTO techTalkDto) { if (techTalkDto == null) { return(BadRequest()); } var fakeDataCreator = new Faker(); var categoryNames = new List <string>() { "Meetup", "Free Conference", "Paid Conference", "Hackathon", "EventTribe" }; var categoryDescriptions = new List <string>() { "Community event organized via meetup", "Free Tech Conference", "Paid Tech Conference", "Hackathon", "Community event organized via Eventribe" }; var levelNames = new List <string>() { "100 - Beginer", "200 - Intermediate", "300 - Advanced", "400 - Expert" }; var techTalks = new Faker <TechTalk>() .StrictMode(true) .RuleFor(t => t.Id, f => f.Random.Number(1, 1000)) .RuleFor(t => t.TechTalkName, f => f.Lorem.Word()) .RuleFor(t => t.CategoryId, f => f.Random.Number(1, 5)) .RuleFor(t => t.Category, new Category { Id = fakeDataCreator.Random.Number(1, 5), CategoryName = fakeDataCreator.PickRandom(categoryNames), Description = fakeDataCreator.PickRandom(categoryDescriptions) }) .RuleFor(t => t.LevelId, f => f.Random.Number(1, 4)) .RuleFor(t => t.Level, new Level { Id = fakeDataCreator.Random.Number(1, 4), LevelName = fakeDataCreator.PickRandom(levelNames) }); // generate 1000 dummy TechTalks var dummyTechTalks = techTalks.Generate(1000); Console.WriteLine("Sending messages to queue"); _messageQueue.SendMessages(dummyTechTalks); return(Ok()); }
public IActionResult Create([FromBody] TechTalkDTO techTalkDto) { if (techTalkDto == null) { return(BadRequest()); } TechTalk techTalk = new TechTalk { TechTalkName = techTalkDto.TechTalkName, CategoryId = techTalkDto.CategoryId, Category = _context.Categories.FirstOrDefault(x => x.Id == techTalkDto.CategoryId), LevelId = techTalkDto.LevelId, Level = _context.Levels.FirstOrDefault(x => x.Id == techTalkDto.LevelId) }; Console.WriteLine("Saving Tech talk to database."); Console.WriteLine($"Tech Talk Id : {techTalk.Id}"); Console.WriteLine($"Tech Talk Name : {techTalk.TechTalkName}"); Console.WriteLine($"Category : {techTalk.CategoryId}"); Console.WriteLine($"Level : {techTalk.LevelId}"); try { _context.TechTalk.Add(techTalk); _context.Entry(techTalk.Category).State = EntityState.Unchanged; _context.Entry(techTalk.Level).State = EntityState.Unchanged; _context.SaveChanges(); } catch (Exception ex) { Console.WriteLine("Inside exception block"); Console.WriteLine(ex.Message); Console.WriteLine(ex.InnerException); } return(Ok()); }
public IActionResult Create([FromBody] TechTalkDTO item) { if (item == null) { return(BadRequest()); } Console.WriteLine("Sending message to queue"); TechTalk techTalk = new TechTalk { TechTalkName = item.TechTalkName, CategoryId = item.CategoryId, Category = _context.Categories.FirstOrDefault(x => x.Id == item.CategoryId), LevelId = item.LevelId, Level = _context.Levels.FirstOrDefault(x => x.Id == item.LevelId) }; _messageQueue.SendMessage(techTalk); return(Ok()); }