public void Generate(
            CountryResearchRequest request,
            CountryDto dto)
        {
            DirectoryInfo currentFolder         = new DirectoryInfo(Directory.GetCurrentDirectory());
            DirectoryInfo projectFolder         = currentFolder.Parent.Parent;
            DirectoryInfo generatedReportFolder = new DirectoryInfo(projectFolder.FullName + @"\" + "GeneratedReports");
            DirectoryInfo documentTemplates     =
                new DirectoryInfo(projectFolder.FullName + @"\" + "DocumentTemplates");
            FileInfo file         = new FileInfo(documentTemplates.FullName + @"\" + "CountryReportTemplate.docx");
            string   pathToOutput = generatedReportFolder.FullName + @"\" + $"ReportForUser_{request.RequestedUserId}.docx";

            File.Copy(file.FullName, pathToOutput);
            var valuesToFill = new Content(
                new FieldContent("CountryName", dto.Name),
                new FieldContent("CountryCode", dto.Alpha3Code),
                new FieldContent("Population", dto.Population.ToString()),
                new FieldContent("Gini", dto.Gini.ToString()));

            using (var outputDocument = new TemplateProcessor(pathToOutput)
                                        .SetRemoveContentControls(true))
            {
                outputDocument.FillContent(valuesToFill);
                outputDocument.SaveChanges();
            }
        }
예제 #2
0
        public CountryDto GetCountry(CountryResearchRequest countryRequest)
        {
            string completeUrl = _baseUri + countryRequest.RequestedCountryCode;
            Uri    uriBody     = new Uri(completeUrl);
            string jsonResult  = _httpClient.GetStringAsync(uriBody).Result;

            CountryDto dto = JsonConvert.DeserializeObject <CountryDto>(jsonResult);

            return(dto);
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            CountryResearchRequest request = new CountryResearchRequest()
            {
                RequestedUserId      = 10,
                RequestedCountryCode = "KAZ"
            };

            MessageBus <CountryResearchRequest> bus = new MessageBus <CountryResearchRequest>();

            bus.PushMessageToQueue(request);
        }
예제 #4
0
        private void Submit_OnClick(object sender, RoutedEventArgs e)
        {
            // Users dbo = new Users();
            //if (!string.IsNullOrEmpty(txtLogin.Text) && !string.IsNullOrEmpty(pass.Password))
            // {
            // TblUsers user = dbo.TblUsers.FirstOrDefault(t => t.Login == txtLogin.Text && t.Password == pass.Password);
            // if (user != null && comboBoxCountries.SelectedItem != null)
            //{
            CountryResearchRequest request = new CountryResearchRequest(1, comboBoxCountries.SelectedItem.ToString());

            MessageBus bus = new MessageBus();

            bus.PushMessageToExchange(request);
            MessageBox.Show("Message sent");
        }
예제 #5
0
        private void Submit_OnClick(object sender, RoutedEventArgs e)
        {
            string userName   = txtLogin.Text;
            string countyCode = comboBoxCountries.SelectedItem.ToString();

            MessageBus bus = new MessageBus();

            foreach (var item in GetCountryCodes())
            {
                CountryResearchRequest request = new CountryResearchRequest(1, item);
                bus.PushMessageToQueue <CountryResearchRequest>("CountryResearchRequest", request);
            }


            MessageBox.Show("Message sent!");
        }