public void Getting_defaults_for_non_existant_values_should_work() { /* Arrange */ var nv = new NameValueSettings(); /* Act */ var s1 = nv.Get("NoSuch1", "Def1"); var s2 = nv.Get<string>("NoSuch2", "Def2"); var s3 = nv.Get<bool>("NoSuch3", true); /* Assert */ s1.Should().Be("Def1"); s2.Should().Be("Def2"); s3.Should().BeTrue(); }
public void Getting_an_invalid_type_should_throw() { /* Arrange */ var nv = new NameValueSettings(); /* Act */ nv.SetSetting(TestSetting.StringValue, "somestring"); Action a1 = () => nv.Get<int>(TestSetting.StringValue, 0); Action a2 = () => nv.Get<object>(TestSetting.StringValue, null); /* Assert */ a1.ShouldThrow<ConfigException>(); a2.ShouldThrow<ConfigException>(); }
public ReportRegistry() : base() { var setting = AppSettings.Current.GetString("Report1:Settings"); NameValueSettings settings = new NameValueSettings(setting); // Schedule an IJob to run at an interval Schedule <Report1Job>().ToRunNow().AndEvery(settings.Get("repeat", 10)).Minutes(); }
public void Execute() { Console.WriteLine("Execute"); try { var setting = AppSettings.Current.GetString("Report1:Settings"); NameValueSettings settings = new NameValueSettings(setting); var email = settings.Get("email"); if (string.IsNullOrEmpty(email)) { Console.WriteLine("Email was not configured"); } else { EmailTemplate template = null; using (var db = new DataContext()) { var journals = db.DBModel.Journals .Include(x => x.JournalDrivers) .Where(x => x.Status == JournalStatus.Started).ToArray(); bool isChanged = false; var engine = new FileHelperEngine <JournalRow>(); var rows = new List <JournalRow>(); rows.Add(new JournalRow { Shipmentcode = "Shipment Code", TruckNo = "Truck No", DriverName = "Driver", Start = "Start", Destination = "Destination", TotalDistance = "Total Distance", TotalDuration = "Total Duration", CurrentLocation = "Current Location", EstimatedDistanceToDestination = "Estimated Distance To Destination", Note = "Note", }); foreach (var journal in journals) { var journalRows = ToJournalRows(db, journal, ref isChanged); if (journalRows.Length > 0) { rows.AddRange(journalRows); } } //MemoryStream ms = new MemoryStream(); string fileContent = engine.WriteString(rows); string fileName = $"JournalStatus{DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss")}.csv"; // Email if (template == null) { template = GetEmailTemplate(); } (new SmtpEmailService()).SendMail( email, template, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { }, new List <Tuple <string, Stream> >() { new Tuple <string, Stream>(fileName, new MemoryStream(Encoding.Unicode.GetBytes(fileContent))), }); if (isChanged) { db.SaveChanges(); } //ms.Dispose(); } } } catch (Exception ex) { Console.WriteLine("Error:", ex.GetFullMessage()); } finally { Console.WriteLine("Sleep to next run"); } }
public void Get_and_set_should_work_regardless_of_culture() { /* Arrange */ var nv = new NameValueSettings(); var expectedDate = DateTime.UtcNow; var expectedTime = new TimeSpan(5, 4, 3, 2, 1); var expectedGuid = Guid.NewGuid(); /* Act */ using (new CultureContext()) { nv.SetSetting("StringValue", "SomeString"); nv.SetEncryptedSetting("StringValueTwo", "SomeOtherString"); nv.SetSetting(TestSetting.IntegerValue, 10); nv.SetSetting(TestSetting.BooleanValue, true); nv.SetSetting(TestSetting.DateTimeValue, expectedDate); nv.SetSetting(TestSetting.EnumValue, TestSetting.EnumValue); nv.SetSetting(TestSetting.TimeSpanValue, expectedTime); nv.SetEncryptedSetting(TestSetting.GuidValue, expectedGuid); } bool encryptedDate = nv.IsEncrypted(TestSetting.DateTimeValue); bool encryptedGuid = nv.IsEncrypted(TestSetting.GuidValue); bool valueExists = nv.HasSetting(TestSetting.BooleanValue); bool valueNoExists = nv.HasSetting("SomeOtherVal"); string stringVal = nv.Get("StringValue", null); string stringVal2 = nv.Get<string>("StringValueTwo", null); int intVal = nv.Get<int>(TestSetting.IntegerValue, 0); bool boolVal = nv.Get<bool>(TestSetting.BooleanValue, false); DateTime dateVal = nv.Get<DateTime>(TestSetting.DateTimeValue, DateTime.MaxValue); TestSetting enumVal = nv.Get<TestSetting>(TestSetting.EnumValue, TestSetting.BooleanValue); TimeSpan timeVal = nv.Get<TimeSpan>(TestSetting.TimeSpanValue, TimeSpan.Zero); Guid guidVal = nv.Get<Guid>(TestSetting.GuidValue, Guid.Empty); /* Assert */ stringVal.Should().Be("SomeString"); stringVal2.Should().Be("SomeOtherString"); intVal.Should().Be(10); boolVal.Should().Be(true); dateVal.Should().Be(expectedDate); enumVal.Should().Be(TestSetting.EnumValue); timeVal.Should().Be(expectedTime); guidVal.Should().Be(expectedGuid); encryptedDate.Should().BeFalse(); encryptedGuid.Should().BeTrue(); valueExists.Should().BeTrue(); valueNoExists.Should().BeFalse(); }
public void Setting_empty_values_should_work() { /* Arrange */ var nv = new NameValueSettings(); /* Act */ nv.SetSetting(TestSetting.StringValue, "SomeVal"); nv.SetSetting(TestSetting.BooleanValue, true); nv.SetSetting(TestSetting.StringValue, null); nv.SetSetting(TestSetting.BooleanValue, string.Empty); var s1 = nv.Get(TestSetting.StringValue, "Def1"); var s2 = nv.Get<bool>(TestSetting.BooleanValue, false); /* Assert */ s1.Should().Be("Def1"); s2.Should().BeFalse(); }
public void Removing_a_setting_should_work() { /* Arrange */ var nv = new NameValueSettings(); /* Act */ nv.SetSetting(TestSetting.StringValue, "SomeVal"); nv.SetSetting(TestSetting.BooleanValue, true); nv.RemoveSetting(TestSetting.StringValue); nv.RemoveSetting((Enum)null); nv.RemoveSetting((string)null); var s1 = nv.Get(TestSetting.StringValue, "Def1"); var s2 = nv.Get<bool>(TestSetting.BooleanValue, false); /* Assert */ s1.Should().Be("Def1"); s2.Should().BeTrue(); }