Example #1
0
        public static async Task <IEnumerable <Contacts> > ReadFromFile(string file)
        {
            var listOfContacts = new List <Contacts>();

            using (var contactsReader = new ContactsReader(file))
            {
                while (!contactsReader.isEndOfStream())
                {
                    var foundContact = await contactsReader.ReadContacts();

                    if (foundContact != null)
                    {
                        listOfContacts.Add(foundContact);
                    }
                }
            }

            return(listOfContacts);
        }
Example #2
0
        public async Task Should_use_a_streamreader_to_read_file()
        {
            string contactName          = "robert simmons";
            string contactPostalAddress = "Holborn, London";

            string newContact = string.Format(CultureInfo.InvariantCulture, "{0}\t{1}", contactName, contactPostalAddress);

            using (var memoryStream = new MemoryStream())
                using (var streamWriter = new StreamWriter(memoryStream))
                    using (var streamReader = new StreamReader(memoryStream))
                        using (var contactsReader = new ContactsReader(streamReader, new char[] { '\t' }))
                        {
                            await streamWriter.WriteLineAsync(newContact);

                            await streamWriter.FlushAsync();

                            memoryStream.Position = 0; // Fix issue with NullReferenceException

                            var contact = await contactsReader.ReadContacts();

                            Assert.AreEqual(contactName, contact.Name);
                            Assert.AreEqual(contactPostalAddress, contact.PostalAddress);
                        }
        }
Example #3
0
        public static void RunRules()
        {
            System.Globalization.CultureInfo customCulture = new System.Globalization.CultureInfo("en-US", true);

            System.Threading.Thread.CurrentThread.CurrentCulture   = customCulture;
            System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture;

            var    contacts        = _cr.ReadContacts("../Gdansk Hackathon - Jira Country contacts.csv");
            var    jiraItemsToSend = _jiraInteractor.GetItems().Where(i => i.status == JiraStatusEnum.To_do);
            var    date            = DateTime.Now;
            string quarter;

            if (date.Month <= 3)
            {
                quarter = $"First Quarter {date.Year}";
            }
            else if (date.Month <= 6)
            {
                quarter = $"Second Quarter {date.Year}";
            }
            else if (date.Month <= 9)
            {
                quarter = $"Third Quarter {date.Year}";
            }
            else
            {
                quarter = $"Fourth Quarter {date.Year}";
            }
            var           subject     = $"KPMG LINK Business Traveler - {quarter} - ";
            List <IEmail> emails      = new List <IEmail>();
            var           rm          = new ResourceManager(typeof(Templates));
            ResourceSet   rs          = rm.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
            DateTime      currentdate = new DateTime();

            currentdate = DateTime.Now;
            DateTime deadline = new DateTime();

            deadline = currentdate.AddDays(7);
            foreach (var jiraItem in jiraItemsToSend)
            {
                var contact = contacts.FirstOrDefault(c => c.Country == jiraItem.Country);
                if (contact == null)
                {
                    continue;
                }
                var email = new EmailModel
                {
                    Country = jiraItem.Country,
                    EmailTo = contact.Email,
                    //EmailTo = "",
                    EmailSubject = subject + contact.Country,
                    EmailBody    = string.Format(rs.GetString("EmailBody"), string.Format("{0}. of {1}, {2}.", currentdate.Day, currentdate.ToString("MMMM"), currentdate.Year)
                                                 , string.Format("{0}. of {1}, {2}.", deadline.Day, deadline.ToString("MMMM"), deadline.Year)),
                    EmailFrom  = rs.GetString("EmailFrom"),
                    ReplyTo    = rs.GetString("CC"),
                    CC         = rs.GetString("CC"),
                    SMTPServer = rs.GetString("SMTPServer")
                };
                emails.Add(email);
            }

            _email.SendMails(emails);
            var updater = new JiraUpdater(jiraItemsToSend.ToList());
            //updater.SendUpdatedItems();
        }