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>();
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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();
        }