Example #1
0
        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);
                }
            }
        }
Example #2
0
        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());
            }
        }
Example #3
0
        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());
        }
Example #6
0
        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());
        }