public async Task TestFundingSummaryPeriodEndReportGeneration()
        {
            string   csv      = string.Empty;
            DateTime dateTime = DateTime.UtcNow;
            string   filename = $"10036143_1_Funding Summary Report {dateTime:yyyyMMdd-HHmmss}";

            Mock <IReportServiceContext> reportServiceContextMock = new Mock <IReportServiceContext>();

            reportServiceContextMock.SetupGet(x => x.JobId).Returns(1);
            reportServiceContextMock.SetupGet(x => x.SubmissionDateTimeUtc).Returns(DateTime.UtcNow);
            reportServiceContextMock.SetupGet(x => x.Ukprn).Returns(10036143);

            Mock <ILogger>           logger = new Mock <ILogger>();
            Mock <IDateTimeProvider> dateTimeProviderMock        = new Mock <IDateTimeProvider>();
            Mock <IStreamableKeyValuePersistenceService> storage = new Mock <IStreamableKeyValuePersistenceService>();
            IValueProvider valueProvider = new ValueProvider();
            ITopicAndTaskSectionOptions topicsAndTasks = TestConfigurationHelper.GetTopicsAndTasks();

            storage.Setup(x => x.SaveAsync($"{filename}.csv", It.IsAny <string>(), It.IsAny <CancellationToken>())).Callback <string, string, CancellationToken>((key, value, ct) => csv = value).Returns(Task.CompletedTask);

            IIntUtilitiesService      intUtilitiesService      = new IntUtilitiesService();
            IJsonSerializationService jsonSerializationService = new JsonSerializationService();
            IXmlSerializationService  xmlSerializationService  = new XmlSerializationService();

            DataStoreConfiguration dataStoreConfiguration = new DataStoreConfiguration()
            {
                ILRDataStoreConnectionString      = new TestConfigurationHelper().GetSectionValues <DataStoreConfiguration>("DataStoreSection").ILRDataStoreConnectionString,
                ILRDataStoreValidConnectionString = new TestConfigurationHelper().GetSectionValues <DataStoreConfiguration>("DataStoreSection").ILRDataStoreValidConnectionString
            };

            IIlr1819ValidContext IlrValidContextFactory()
            {
                var options = new DbContextOptionsBuilder <ILR1819_DataStoreEntitiesValid>().UseSqlServer(dataStoreConfiguration.ILRDataStoreValidConnectionString).Options;

                return(new ILR1819_DataStoreEntitiesValid(options));
            }

            IIlr1819RulebaseContext IlrRulebaseValidContextFactory()
            {
                var options = new DbContextOptionsBuilder <ILR1819_DataStoreEntities>().UseSqlServer(dataStoreConfiguration.ILRDataStoreConnectionString).Options;

                return(new ILR1819_DataStoreEntities(options));
            }

            IIlrProviderService     ilrProviderService     = new IlrProviderService(logger.Object, storage.Object, xmlSerializationService, dateTimeProviderMock.Object, intUtilitiesService, IlrValidContextFactory, IlrRulebaseValidContextFactory);
            IFM36ProviderService    fm36ProviderService    = new FM36ProviderService(logger.Object, storage.Object, jsonSerializationService, intUtilitiesService, IlrRulebaseValidContextFactory);
            IStringUtilitiesService stringUtilitiesService = new StringUtilitiesService();

            dateTimeProviderMock.Setup(x => x.GetNowUtc()).Returns(dateTime);
            dateTimeProviderMock.Setup(x => x.ConvertUtcToUk(It.IsAny <DateTime>())).Returns(dateTime);
            var fundingSummaryPeriodEndModelBuilder = new FundingSummaryPeriodEndModelBuilder();

            var report = new ReportService.Service.Reports.PeriodEnd.FundingSummaryPeriodEndReport(logger.Object, storage.Object, ilrProviderService, fm36ProviderService, stringUtilitiesService, dateTimeProviderMock.Object, valueProvider, topicsAndTasks, fundingSummaryPeriodEndModelBuilder);

            await report.GenerateReport(reportServiceContextMock.Object, null, false, CancellationToken.None);

            csv.Should().NotBeNullOrEmpty();
            File.WriteAllText($"{filename}.csv", csv);
            TestCsvHelper.CheckCsv(csv, new CsvEntry(new FundingSummaryPeriodEndMapper(), 1));
        }
Exemplo n.º 2
0
        public void SerializationServiceSerializeImplementsISerializationServiceInterfaceTest()
        {
            var serializationService    = new JsonSerializationService();
            var testImplementsInterface = serializationService as ISerializationService;

            Assert.IsNotNull(testImplementsInterface);
        }
 public void SerializationServiceSerializeObjectSerializesToStringTest()
 {
     var serializationService = new JsonSerializationService();
     var testObject = new SerializationTestClass("Jamie", DateTime.Now);
     var serializedObject = serializationService.SerializeFormData(testObject);
     Assert.IsInstanceOfType(serializedObject, typeof (string));
 }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            //initialize services
            IJsonSerializationService <ApplicationSettings> jsonSerializationService = new JsonSerializationService <ApplicationSettings>(); //serialization service
            IAudioService audioService = new AudioService();                                                                                 //audio service
            IApplicationSettingsService applicationSettingsService = new ApplicationSettingsService(jsonSerializationService, audioService); //application service

            //get current application settings
            ApplicationSettings applicationSettings = applicationSettingsService.GetApplicationSettings();

            //add
            applicationSettings.Settings.Add(new Setting()
            {
                Name = "eac3to", Value = @"c:\exe\eac3to.exe"
            });
            //save to disc
            applicationSettingsService.Save(applicationSettings);

            var errors = applicationSettingsService.Errors;

            //get settings
            applicationSettings = applicationSettingsService.GetApplicationSettings();

            errors = applicationSettingsService.Errors;

            System.Console.ReadLine();
        }
Exemplo n.º 5
0
        public void GetSubmissionOptions_Success()
        {
            var httpClientMock       = new Mock <IBespokeHttpClient>();
            var serialisationService = new JsonSerializationService();
            var items = new List <CollectionType>()
            {
                new CollectionType()
                {
                    Type        = "ILR",
                    Description = "ILR data submission"
                },
                new CollectionType()
                {
                    Type        = "ESF",
                    Description = "ESF data submission"
                }
            };

            httpClientMock.Setup(x => x.GetDataAsync("testurl/api/org/collection-types/10000")).ReturnsAsync(() => serialisationService.Serialize(items));

            var pollyRegistryMock = new Mock <IReadOnlyPolicyRegistry <string> >();

            pollyRegistryMock.Setup(x => x.Get <IAsyncPolicy>("HttpRetryPolicy")).Returns(Policy.NoOpAsync);
            var apiSettings = new ApiSettings()
            {
                JobManagementApiBaseUrl = "testurl/api"
            };

            var service = new CollectionManagementService(httpClientMock.Object, apiSettings, new JsonSerializationService());
            var data    = service.GetSubmssionOptionsAsync(10000).Result;

            data.Count().Should().Be(2);
            data.Any(x => x.Name == "ILR" && x.Title == "ILR data submission").Should().BeTrue();
            data.Any(x => x.Name == "ESF" && x.Title == "ESF data submission").Should().BeTrue();
        }
Exemplo n.º 6
0
        public void GetCurrentPeriod_Success()
        {
            var httpClientMock       = new Mock <IBespokeHttpClient>();
            var serialisationService = new JsonSerializationService();
            var rp = new ReturnPeriod()
            {
                CollectionName   = "ILR1819",
                PeriodNumber     = 1,
                CalendarMonth    = 8,
                CalendarYear     = 2018,
                StartDateTimeUtc = new DateTime(2018, 8, 22),
                EndDateTimeUtc   = new DateTime(2018, 9, 04)
            };

            httpClientMock.Setup(x => x.GetDataAsync("testurl/api/returns-calendar/ILR1819/current")).ReturnsAsync(() => serialisationService.Serialize(rp));

            var pollyRegistryMock = new Mock <IReadOnlyPolicyRegistry <string> >();

            pollyRegistryMock.Setup(x => x.Get <IAsyncPolicy>("HttpRetryPolicy")).Returns(Policy.NoOpAsync);
            var apiSettings = new ApiSettings()
            {
                JobManagementApiBaseUrl = "testurl/api"
            };

            var service = new CollectionManagementService(httpClientMock.Object, apiSettings, new JsonSerializationService());
            var data    = service.GetCurrentPeriodAsync("ILR1819").Result;

            data.Should().NotBeNull();
            data.PeriodNumber.Should().Be(1);
        }
 public void SerializationServiceDeSerializeStringDeSerializesUsingTypeNameToObjectTest()
 {
     var serializationService = new JsonSerializationService();
     var testObject = new SerializationTestClass("Bob", DateTime.Now);
     var serializedObject = serializationService.SerializeFormData(testObject);
     var deserializedObject = serializationService.DeSerializeFormData(serializedObject);
     Assert.IsInstanceOfType(deserializedObject, typeof (SerializationTestClass));
 }
Exemplo n.º 8
0
        public void SerializationServiceSerializeObjectSerializesToStringTest()
        {
            var serializationService = new JsonSerializationService();
            var testObject           = new SerializationTestClass("Jamie", DateTime.Now);
            var serializedObject     = serializationService.SerializeFormData(testObject);

            Assert.IsInstanceOfType(serializedObject, typeof(string));
        }
        public void GetFormDataFragmentInvalidJsonThrowsUnsupportedOperationExceptionTest()
        {
            var          serilializedService = new JsonSerializationService();
            var          dataFragmentService = new DataFragmentJsonService(serilializedService);
            const string serializedObject    = "<xml>Not Json</xml>";

            dataFragmentService.GetFragment(serializedObject, "Addresses", new KeyValuePair <string, string>());
        }
Exemplo n.º 10
0
        public void SerializationServiceDeSerializeStringDeSerializesUsingTypeNameToObjectTest()
        {
            var serializationService = new JsonSerializationService();
            var testObject           = new SerializationTestClass("Bob", DateTime.Now);
            var serializedObject     = serializationService.SerializeFormData(testObject);
            var deserializedObject   = serializationService.DeSerializeFormData(serializedObject);

            Assert.IsInstanceOfType(deserializedObject, typeof(SerializationTestClass));
        }
        public void RemoveFormDataFragmentThrowsNotFoundExceptionTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);

            dataFragmentService.RemoveFragment(serializedObject, "InvalidFragmentName", new KeyValuePair<string, string>());
        }
 public void mkvmergelanguageservice_can_get_languages_test()
 {
     //given
     IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
     IMKVMergeLanguageService service = new MKVMergeLanguageService(jsonSerializationService);
     //when
     var languages = service.GetLanguages();
     //then
     languages.Count().Should().BeGreaterThan(0);
 }
        public void GetFormDataFragmentThrowsNotFoundExceptionTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject    = serilializedService.SerializeFormData(testClass);

            dataFragmentService.GetFragment(serializedObject, "InvalidFragmentName", new KeyValuePair <string, string>());
        }
 public void mkvmergelanguageservice_returns_undetermined_when_language_not_found_test()
 {
     //given
     IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
     IMKVMergeLanguageService service = new MKVMergeLanguageService(jsonSerializationService);
     //when
     var language = service.GetLanguageByName("nolanguage");
     //then
     language.Value.Should().Be("und");
 }
 /// <summary>
 /// Default c'tor with predefined Services
 /// </summary>
 public PredefinedServiceFacade()
 {
     RequestService            = new RequestService();
     RequestParameterService   = new UrlRequestParameterService();
     MappingService            = new JsonMapperService();
     GeolocationMappingService = new GoogleGeolocationMappingService();
     CachingService            = new CachingService();
     SerializationService      = new JsonSerializationService();
     ThreadService             = new ThreadService();
 }
 public void mkvmergelanguageservice_returns_correct_language_test()
 {
     //given
     IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
     IMKVMergeLanguageService service = new MKVMergeLanguageService(jsonSerializationService);
     //when
     var language = service.GetLanguageByName("English");
     //then
     language.Value.Should().Be("eng");
 }
        public void mkvmergelanguageservice_returns_correct_language_test()
        {
            //given
            IJsonSerializationService <ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService <ISOLanguageCodeCollection>();
            IMKVMergeLanguageService service = new MKVMergeLanguageService(jsonSerializationService);
            //when
            var language = service.GetLanguageByName("English");

            //then
            language.Value.Should().Be("eng");
        }
        public void mkvmergelanguageservice_can_get_languages_test()
        {
            //given
            IJsonSerializationService <ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService <ISOLanguageCodeCollection>();
            IMKVMergeLanguageService service = new MKVMergeLanguageService(jsonSerializationService);
            //when
            var languages = service.GetLanguages();

            //then
            languages.Count().Should().BeGreaterThan(0);
        }
Exemplo n.º 19
0
        public void UpdateFormDataFragmentInvalidJsonThrowsUnsupportedOperationExceptionTest()
        {
            var testClass = GetTestClass();

            var          serilializedService      = new JsonSerializationService();
            var          dataFragmentService      = new DataFragmentJsonService(serilializedService);
            var          serializedObject         = serilializedService.SerializeFormData(testClass);
            const string serializedFragmentObject = "<xml>Not Json</xml>";

            dataFragmentService.UpdateFragment(serializedObject, serializedFragmentObject, "Owners", new KeyValuePair <string, string>());
        }
        public void RemoveFormDataFragmentReturnsSerializedStringTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);

            var result = dataFragmentService.RemoveFragment(serializedObject, "Owners", new KeyValuePair<string, string>());
            Assert.IsInstanceOfType(result, typeof(string));
        }
        public void RemoveFormDataArrayFragmentReturnsUpdatedSerializedStringTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);

            var result = dataFragmentService.RemoveFragment(serializedObject, "Owners", new KeyValuePair<string, string>());
            Assert.AreNotEqual(serializedObject.Length, result.Length);
        }
        public void GetFormDataFragmentFilteredThrowsNotFoundExceptionTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject    = serilializedService.SerializeFormData(testClass);
            var filterQuery         = new KeyValuePair <string, string>("Id", "3");

            dataFragmentService.GetFragment(serializedObject, "Addresses", filterQuery);
        }
        public void Json_SerializeModel_Fail()
        {
            var ser     = new JsonSerializationService();
            var recurse = new RecurseModel();

            recurse.ToInfinity = recurse;

            var result = ser.Serialize(recurse);

            Assert.IsNotNull(result);
        }
        public void mkvmergelanguageservice_returns_undetermined_when_language_not_found_test()
        {
            //given
            IJsonSerializationService <ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService <ISOLanguageCodeCollection>();
            IMKVMergeLanguageService service = new MKVMergeLanguageService(jsonSerializationService);
            //when
            var language = service.GetLanguageByName("nolanguage");

            //then
            language.Value.Should().Be("und");
        }
        public void Json_TrySerializeModel_Succeed()
        {
            var now   = DateTime.Now;
            var model = ReminderFactory.Create(now);
            var ser   = new JsonSerializationService();

            string serializerResult;
            var    result = ser.TrySerialize(model, out serializerResult);

            Assert.IsTrue(result);
            Assert.IsNotNull(serializerResult);
        }
        public void GetFormDataFragmentReturnsReturnsSerializedStringTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject    = serilializedService.SerializeFormData(testClass);

            var result = dataFragmentService.GetFragment(serializedObject, "Owners", new KeyValuePair <string, string>());

            Assert.IsInstanceOfType(result, typeof(string));
        }
        public void GetFormDataFragmentReturnsCorrectFragmentTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);
            var targetFragmentserializedObject = serilializedService.SerializeFormData(testClass.Name);

            var result = dataFragmentService.GetFragment(serializedObject, "Name", new KeyValuePair<string, string>());
            Assert.AreEqual(targetFragmentserializedObject, result);
        }
        public void RemoveFormDataArrayFragmentReturnsUpdatedSerializedStringTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject    = serilializedService.SerializeFormData(testClass);

            var result = dataFragmentService.RemoveFragment(serializedObject, "Owners", new KeyValuePair <string, string>());

            Assert.AreNotEqual(serializedObject.Length, result.Length);
        }
Exemplo n.º 29
0
        public async Task GetFM35DataTest()
        {
            string fm35OutputKey = "FundingFm35OutputEmpty.json";

            Mock <ILogger> logger = new Mock <ILogger>();
            Mock <IStreamableKeyValuePersistenceService> redis = new Mock <IStreamableKeyValuePersistenceService>();
            IJsonSerializationService jsonSerializationService = new JsonSerializationService();
            IIntUtilitiesService      intUtilitiesService      = new IntUtilitiesService();
            DataStoreConfiguration    dataStoreConfiguration   = new DataStoreConfiguration()
            {
                ILRDataStoreConnectionString      = string.Empty,
                ILRDataStoreValidConnectionString = string.Empty
            };

            IIlr1819ValidContext IlrValidContextFactory()
            {
                var options = new DbContextOptionsBuilder <ILR1819_DataStoreEntitiesValid>().UseSqlServer(dataStoreConfiguration.ILRDataStoreValidConnectionString).Options;

                return(new ILR1819_DataStoreEntitiesValid(options));
            }

            IIlr1819RulebaseContext IlrRulebaseContextFactory()
            {
                var options = new DbContextOptionsBuilder <ILR1819_DataStoreEntities>().UseSqlServer(dataStoreConfiguration.ILRDataStoreConnectionString).Options;

                return(new ILR1819_DataStoreEntities(options));
            }

            Mock <IReportServiceContext> reportServiceContextMock = new Mock <IReportServiceContext>();

            reportServiceContextMock.SetupGet(x => x.JobId).Returns(1);
            reportServiceContextMock.SetupGet(x => x.SubmissionDateTimeUtc).Returns(DateTime.UtcNow);
            reportServiceContextMock.SetupGet(x => x.Ukprn).Returns(10033670);
            reportServiceContextMock.SetupGet(x => x.Filename).Returns("ILR-10033670-1819-20180704-120055-03");
            reportServiceContextMock.SetupGet(x => x.FundingFM35OutputKey).Returns(fm35OutputKey);
            reportServiceContextMock.SetupGet(x => x.CollectionName).Returns("ILR1819");

            redis.Setup(x => x.ContainsAsync(fm35OutputKey, It.IsAny <CancellationToken>())).ReturnsAsync(true);
            redis.Setup(x => x.GetAsync(fm35OutputKey, It.IsAny <Stream>(), It.IsAny <CancellationToken>())).Callback <string, Stream, CancellationToken>((st, sr, ct) => File.OpenRead(@"Service\FundingFm35OutputEmpty.json").CopyTo(sr)).Returns(Task.CompletedTask);

            FM35ProviderService fm35ProviderService = new FM35ProviderService(
                logger.Object,
                redis.Object,
                jsonSerializationService,
                intUtilitiesService,
                IlrValidContextFactory,
                IlrRulebaseContextFactory);

            FM35Global fm35Data = await fm35ProviderService.GetFM35Data(reportServiceContextMock.Object, CancellationToken.None);

            fm35Data.Learners.Should().BeNullOrEmpty();
        }
        public void GetFormDataFragmentReturnsCorrectFragmentTest()
        {
            var testClass = GetTestClass();

            var serilializedService            = new JsonSerializationService();
            var dataFragmentService            = new DataFragmentJsonService(serilializedService);
            var serializedObject               = serilializedService.SerializeFormData(testClass);
            var targetFragmentserializedObject = serilializedService.SerializeFormData(testClass.Name);

            var result = dataFragmentService.GetFragment(serializedObject, "Name", new KeyValuePair <string, string>());

            Assert.AreEqual(targetFragmentserializedObject, result);
        }
        public void GetFormDataFilteredArrayFragmentReturnsCorrectFilteredFragmentTest2()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);
            var targetFragmentserializedObject = serilializedService.SerializeFormData(testClass.Owners.FirstOrDefault(o => o.Address.Id == 2).Address);
            var filterQuery = new KeyValuePair<string, string>("Id", "2");

            var result = dataFragmentService.GetFragment(serializedObject, "Address", filterQuery);
            Assert.AreEqual(targetFragmentserializedObject, result);
        }
        public void Json_TrySerializeModel_Fail()
        {
            var ser     = new JsonSerializationService();
            var recurse = new RecurseModel();

            recurse.ToInfinity = recurse;

            string serializerResult;
            var    result = ser.TrySerialize(recurse, out serializerResult);

            Assert.IsFalse(result);
            Assert.IsNull(serializerResult);
        }
        public void Json_DeserializeModel_Fail()
        {
            var json = "{INVALID\"TimeRange\":2,\"DayRange\":3,\"CustomDays\":1,\"Title\":\"Test Reminder\"," +
                       "\"Notes\":\"Exercise full range of motion\",\"HowManyTimesADay\":4," +
                       "\"StartDate\":\"2020-02-11T13:43:34.9119383-07:00\",\"EndDate\":\"2020-03-03T13:43:34.9119383-07:00\"," +
                       "\"NextDue\":\"2020-02-18T13:43:34.9119383-07:00\"}";

            var ser = new JsonSerializationService();

            var result = ser.Deserialize <Reminder>(json);

            Assert.IsInstanceOfType(result, typeof(Reminder));
        }
        public void Json_SerializeModel_Succeed()
        {
            var now   = DateTime.Now;
            var model = ReminderFactory.Create(now);

            Assert.AreEqual(now, model.NextDue);

            var ser = new JsonSerializationService();

            var result = ser.Serialize(model);

            Assert.IsNotNull(result);
        }
Exemplo n.º 35
0
        public void UpdateFormDataFragmentUpdateFilteredFragmentThrowsNotFoundExceptionTest()
        {
            var testClass        = GetTestClass();
            var updatedTestClass = GetUpdatedTestClass();

            var serilializedService      = new JsonSerializationService();
            var dataFragmentService      = new DataFragmentJsonService(serilializedService);
            var serializedObject         = serilializedService.SerializeFormData(testClass);
            var serializedFragmentObject = serilializedService.SerializeFormData(updatedTestClass.Owners);
            var filterQuery = new KeyValuePair <string, string>("Id", "6");

            dataFragmentService.UpdateFragment(serializedObject, serializedFragmentObject, "Owners", filterQuery);
        }
        public void bluraytitleparserservice_can_set_audio_id_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "3: DTS Master Audio, French, 5.1 channels, 24 bits, 48kHz" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems, languageService);
            BluRayTitleInfo info = parserService.GetTitleInfo();

            info.AudioList[0].Id.Should().Be("3:");
        }
        public void bluraytitleparserservice_can_set_audio_type_ac3_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "3: Dolby Digital Audio English 448 kbps 5.1 / 48 kHz / 448 kbps" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems,languageService);
            BluRayTitleInfo info = parserService.GetTitleInfo();

            info.AudioList[0].AudioType.Should().Be(EnumAudioType.AC3);
        }
        public void GetFormDataFilteredArrayFragmentReturnsCorrectFilteredFragmentTest2()
        {
            var testClass = GetTestClass();

            var serilializedService            = new JsonSerializationService();
            var dataFragmentService            = new DataFragmentJsonService(serilializedService);
            var serializedObject               = serilializedService.SerializeFormData(testClass);
            var targetFragmentserializedObject = serilializedService.SerializeFormData(testClass.Owners.FirstOrDefault(o => o.Address.Id == 2).Address);
            var filterQuery = new KeyValuePair <string, string>("Id", "2");

            var result = dataFragmentService.GetFragment(serializedObject, "Address", filterQuery);

            Assert.AreEqual(targetFragmentserializedObject, result);
        }
        public static void Main(string[] args)
        {
            var configBuilder = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile(ConfigFile);

            IConfiguration configuration = configBuilder.Build();

            IJobStatusWebServiceCallServiceConfig auditingPersistenceServiceConfig = new JobStatusWebServiceCallServiceConfig(configuration["jobSchedulerApiEndPoint"]);
            IQueueConfiguration        queueConfiguration              = new JobStatusQueueConfiguration(configuration["queueConnectionString"], configuration["queueName"], 1);
            ISerializationService      serializationService            = new JsonSerializationService();
            IApplicationLoggerSettings applicationLoggerOutputSettings = new ApplicationLoggerSettings
            {
                ApplicationLoggerOutputSettingsCollection = new List <IApplicationLoggerOutputSettings>
                {
                    new MsSqlServerApplicationLoggerOutputSettings
                    {
                        ConnectionString = configuration["logConnectionString"],
                        MinimumLogLevel  = LogLevel.Information
                    },
                    new ConsoleApplicationLoggerOutputSettings
                    {
                        MinimumLogLevel = LogLevel.Information
                    }
                },
                TaskKey            = "Job Fail Status",
                EnableInternalLogs = true,
                JobId           = "Job Fail Status Service",
                MinimumLogLevel = LogLevel.Information
            };
            IExecutionContext executionContext = new ExecutionContext
            {
                JobId   = "Job Fail Status Service",
                TaskKey = "Job Fail Status"
            };
            ILogger           logger           = new SeriLogger(applicationLoggerOutputSettings, executionContext);
            IDateTimeProvider dateTimeProvider = new DateTimeProvider.DateTimeProvider();
            IQueueSubscriptionService <JobContextDto>       queueSubscriptionService        = new QueueSubscriptionService <JobContextDto>(queueConfiguration, serializationService, logger);
            IJobStatusWebServiceCallService <JobContextDto> failedJobsWebServiceCallService = new FailedJobsWebServiceCallService(auditingPersistenceServiceConfig, queueSubscriptionService, serializationService, logger);

            failedJobsWebServiceCallService.Subscribe();

            logger.LogInfo($"Started {executionContext.JobId}!");

            ManualResetEvent oSignalEvent = new ManualResetEvent(false);

            oSignalEvent.WaitOne();
        }
        public void JsonSerializationServiceTest()
        {
            ISerializationService serializationService = new JsonSerializationService();

            var data = new Dictionary <char, double>
            {
                ['а'] = 0.5,
                ['б'] = 0.25,
                ['в'] = 0.333
            };
            var serializedData = serializationService.SerializeData(data);

            const string expectedResult = "{\"а\":0.5,\"б\":0.25,\"в\":0.333}";

            Assert.That(serializedData == expectedResult);
        }
        public void RemoveFormDataFilteredArrayFragmentReturnsUpdatedSerializedStringTestTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);
            var fragmentToRemove = testClass.Owners.FirstOrDefault(a => a.Id == 2);
            testClass.Owners.Remove(fragmentToRemove);

            var expectedFragmentserializedObject = serilializedService.SerializeFormData(testClass);
            var filterQuery = new KeyValuePair<string, string>("Id", "2");

            var result = dataFragmentService.RemoveFragment(serializedObject, "Owners", filterQuery);
            Assert.AreEqual(expectedFragmentserializedObject, result);
        }
        public void UpdateFormDataArrayFragmentReturnsUpdatedSerializedStringTest()
        {
            var testClass = GetTestClass();
            var updatedTestClass = GetUpdatedTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);
            var serializedFragmentObject = serilializedService.SerializeFormData(updatedTestClass.Owners);

            testClass.Owners = updatedTestClass.Owners;
            var expectedSerializedObject = serilializedService.SerializeFormData(testClass);

            var result = dataFragmentService.UpdateFragment(serializedObject, serializedFragmentObject, "Owners", new KeyValuePair<string, string>());
            Assert.AreEqual(expectedSerializedObject, result);
        }
        public static void Main(string[] args)
        {
            var configBuilder = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile(ConfigFile);

            IConfiguration configuration = configBuilder.Build();

            IAuditingPersistenceServiceConfig auditingPersistenceServiceConfig = new AudtingPersistenceServiceConfig(configuration["auditConnectionString"]);
            IQueueConfiguration        queueConfiguration              = new AuditQueueConfiguration(configuration["queueConnectionString"], configuration["queueName"], 1);
            ISerializationService      serializationService            = new JsonSerializationService();
            IApplicationLoggerSettings applicationLoggerOutputSettings = new ApplicationLoggerSettings
            {
                ApplicationLoggerOutputSettingsCollection = new List <IApplicationLoggerOutputSettings>
                {
                    new MsSqlServerApplicationLoggerOutputSettings
                    {
                        ConnectionString = configuration["logConnectionString"],
                        MinimumLogLevel  = LogLevel.Information
                    },
                    new ConsoleApplicationLoggerOutputSettings
                    {
                        MinimumLogLevel = LogLevel.Information
                    }
                },
                TaskKey            = "Audit",
                EnableInternalLogs = true,
                JobId           = "Audit Service",
                MinimumLogLevel = LogLevel.Information
            };
            IExecutionContext executionContext = new ExecutionContext
            {
                JobId   = "Audit Service",
                TaskKey = "Audit"
            };
            ILogger logger = new SeriLogger(applicationLoggerOutputSettings, executionContext);
            IQueueSubscriptionService <AuditingDto>   queueSubscriptionService   = new QueueSubscriptionService <AuditingDto>(queueConfiguration, serializationService, logger);
            IAuditingPersistenceService <AuditingDto> auditingPersistenceService = new AuditingPersistenceService <AuditingDto>(auditingPersistenceServiceConfig, queueSubscriptionService, logger);

            auditingPersistenceService.Subscribe();

            logger.LogInfo("Started!");

            ManualResetEvent oSignalEvent = new ManualResetEvent(false);

            oSignalEvent.WaitOne();
        }
        public void bluraytitleparserservice_can_set_audio_id_test()
        {
            List <ProcessOutputLineItem> lineItems = new List <ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()
                {
                    Id = 1, Text = "3: DTS Master Audio, French, 5.1 channels, 24 bits, 48kHz"
                }
            };
            IJsonSerializationService <ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService <ISOLanguageCodeCollection>();
            IMKVMergeLanguageService   languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService  parserService   = new BluRayTitleParserService(lineItemService, lineItems, languageService);
            BluRayTitleInfo            info            = parserService.GetTitleInfo();

            info.AudioList[0].Id.Should().Be("3:");
        }
Exemplo n.º 45
0
        static void Main(string[] args)
        {
            //initialize services
            IJsonSerializationService<ApplicationSettings> jsonSerializationService = new JsonSerializationService<ApplicationSettings>(); //serialization service
            IAudioService audioService = new AudioService(); //audio service
            IApplicationSettingsService applicationSettingsService = new ApplicationSettingsService(jsonSerializationService, audioService); //application service

            //get current application settings
            ApplicationSettings applicationSettings = applicationSettingsService.GetApplicationSettings();

            //add
            applicationSettings.Settings.Add(new Setting() { Name = "eac3to", Value = @"c:\exe\eac3to.exe" });
            //save to disc
            applicationSettingsService.Save(applicationSettings);

            var errors = applicationSettingsService.Errors;

            //get settings
            applicationSettings = applicationSettingsService.GetApplicationSettings();

            errors = applicationSettingsService.Errors;

            System.Console.ReadLine();
        }
Exemplo n.º 46
0
 private void HandlesLoadToolStripMenuItemClick(string settingsFile)
 {
     try
     {
         if (!string.IsNullOrEmpty(settingsFile))
         {
             IJsonSerializationService<BatchGuyEAC3ToSettings> jsonSerializationService = new JsonSerializationService<BatchGuyEAC3ToSettings>();
             IBatchGuyEAC3ToSettingsService batchGuyEAC3ToSettingsService = new BatchGuyEAC3ToSettingsService(jsonSerializationService);
             _batchGuyEAC3ToSettings = batchGuyEAC3ToSettingsService.GetBatchGuyEAC3ToSettings(settingsFile);
             if (batchGuyEAC3ToSettingsService.Errors.Count() > 0)
             {
                 MessageBox.Show(batchGuyEAC3ToSettingsService.Errors.GetErrorMessage(), "Error Occurred.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
             else if (_batchGuyEAC3ToSettings.EAC3ToSettings.IsExtractForRemux)
             {
                 MessageBox.Show("You cannot load a (.batchGuyEac3toSettings) file that is for Remuxing!", "Error Occurred.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
             else
             {
                 this._encodeTypeChangedBecauseOfSettingsLoad = true;
                 this.LoadEpisodeNumbers();
                 this.LoadScreen();
                 gbScreen.SetEnabled(true);
                 saveToolStripMenuItem.Enabled = true;
                 createX264BatchFileToolStripMenuItem.Enabled = true;
                 createMkvmergeBatchFileToolStripMenuItem.Enabled = true;
             }
         }
     }
     catch (Exception ex)
     {
         _displayErrorMessageService.DisplayError(new ErrorMessage() { DisplayMessage = "There was an error trying to load the eac3to Settings File!", DisplayTitle = "Error.", Exception = ex, MethodNameWhereExceptionOccurred = MethodBase.GetCurrentMethod().Name });
     }
 }
        public void bluraytitleparserservice_is_id_valid_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "4: Subtitle (pgs), French" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems,languageService);

            bool isValid = parserService.IsIdValid("4:");

            isValid.Should().BeTrue();
        }
 public void SerializationServiceSerializeImplementsISerializationServiceInterfaceTest()
 {
     var serializationService = new JsonSerializationService();
     var testImplementsInterface = serializationService as ISerializationService;
     Assert.IsNotNull(testImplementsInterface);
 }
Exemplo n.º 49
0
 private void bgwEac3toLoadTitle_DoWork(object sender, DoWorkEventArgs e)
 {
     try
     {
         IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
         IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
         ICommandLineProcessService commandLineProcessService = e.Argument as CommandLineProcessService;
         List<ProcessOutputLineItem> processOutputLineItems = commandLineProcessService.GetProcessOutputLineItems();
         ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
         IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, processOutputLineItems, languageService);
         _bluRaySummaryInfo.BluRayTitleInfo = parserService.GetTitleInfo();
     }
     catch (Exception ex)
     {
         _displayErrorMessageService.DisplayError(new ErrorMessage() { DisplayMessage = "There was a problem loading the title!", DisplayTitle = "Error.", Exception = ex, MethodNameWhereExceptionOccurred = MethodBase.GetCurrentMethod().Name });
     }
 }
        public void UpdateFormDataFragmentInvalidJsonThrowsUnsupportedOperationExceptionTest()
        {
            var testClass = GetTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);
            const string serializedFragmentObject = "<xml>Not Json</xml>";

            dataFragmentService.UpdateFragment(serializedObject, serializedFragmentObject, "Owners", new KeyValuePair<string, string>());
        }
        public void UpdateFormDataFragmentUpdateFilteredFragmentThrowsNotFoundExceptionTest()
        {
            var testClass = GetTestClass();
            var updatedTestClass = GetUpdatedTestClass();

            var serilializedService = new JsonSerializationService();
            var dataFragmentService = new DataFragmentJsonService(serilializedService);
            var serializedObject = serilializedService.SerializeFormData(testClass);
            var serializedFragmentObject = serilializedService.SerializeFormData(updatedTestClass.Owners);
            var filterQuery = new KeyValuePair<string, string>("Id", "6");

            dataFragmentService.UpdateFragment(serializedObject, serializedFragmentObject, "Owners", filterQuery);
        }
Exemplo n.º 52
0
        private void HandlesSaveToolStripMenuItemClick()
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "BatchGuy File|*.batchGuyEac3toSettings";
            sfd.Title = "Save eac3to Settings File";
            sfd.ShowDialog();

            if (!string.IsNullOrEmpty(sfd.FileName))
            {
                dgvFiles.CurrentCell = null; //force the cell change so cell changed event fires
                _batchGuyEAC3ToSettings.X264Files = this.GetX264Files();
                _batchGuyEAC3ToSettings.X264FileSettings = this.GetX264FileSettings();
                IJsonSerializationService<BatchGuyEAC3ToSettings> jsonSerializationService = new JsonSerializationService<BatchGuyEAC3ToSettings>();
                IBatchGuyEAC3ToSettingsService batchGuyEAC3ToSettingsService = new BatchGuyEAC3ToSettingsService(jsonSerializationService);
                batchGuyEAC3ToSettingsService.Save(sfd.FileName, _batchGuyEAC3ToSettings);
                if (batchGuyEAC3ToSettingsService.Errors.Count() > 0)
                {
                    MessageBox.Show(batchGuyEAC3ToSettingsService.Errors.GetErrorMessage(), "Error Occurred.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        public void bluraytitleparserservice_is_id_not_valid_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "(core: DTS, 5.1 channels, 1509kpps, 48kHz)" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems, languageService);

            bool isValid = parserService.IsIdValid("core:");

            isValid.Should().BeFalse();
        }
        public void bluraytitleparserservice_can_set_audio_type_lpcm_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "3: English / LPCM Audio / 1.0 / 48 kHz / 1152 kbps / 24-bit" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems,languageService);
            BluRayTitleInfo info = parserService.GetTitleInfo();

            info.AudioList[0].AudioType.Should().Be(EnumAudioType.LPCM);
        }
        public void bluraytitleparserservice_can_set_header_text_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "M2TS, 1 video track, 1 audio track, 1 subtitle track, 0:58:28, 50i" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems, languageService);
            BluRayTitleInfo info = parserService.GetTitleInfo();

            info.HeaderText.Should().Be(lineItems[0].Text);
        }
        public void bluraytitleparserservice_can_set_subtitle_language_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "4: Subtitle (pgs), French" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems,languageService);
            BluRayTitleInfo info = parserService.GetTitleInfo();

            info.Subtitles[0].Language.Should().Be("French");
        }
Exemplo n.º 57
0
 private void HandlesLoadToolStripMenuItemClick(string settingsFile)
 {
     try
     {
         if (!string.IsNullOrEmpty(settingsFile))
         {
             IJsonSerializationService<BatchGuyEAC3ToSettings> jsonSerializationService = new JsonSerializationService<BatchGuyEAC3ToSettings>();
             IBatchGuyEAC3ToSettingsService batchGuyEAC3ToSettingsService = new BatchGuyEAC3ToSettingsService(jsonSerializationService);
             _batchGuyEAC3ToSettings = batchGuyEAC3ToSettingsService.GetBatchGuyEAC3ToSettings(settingsFile);
             if (batchGuyEAC3ToSettingsService.Errors.Count() > 0)
             {
                 MessageBox.Show(batchGuyEAC3ToSettingsService.Errors.GetErrorMessage(), "Error Occurred.", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
             else
             {
                 this.ReloadEac3ToSettingsAndBluRayDiscs(_batchGuyEAC3ToSettings);
                 this.ReloadRemux();
                 this.SettxtRemuxSeasonNumberEnabledStatus();
             }
         }
     }
     catch (Exception ex)
     {
         _displayErrorMessageService.DisplayError(new ErrorMessage() { DisplayMessage = "There was an error trying to load the eac3to Settings File!", DisplayTitle = "Error.", Exception = ex, MethodNameWhereExceptionOccurred = MethodBase.GetCurrentMethod().Name });
     }
 }
        public void bluraytitleparserservice_can_set_video_test()
        {
            List<ProcessOutputLineItem> lineItems = new List<ProcessOutputLineItem>
            {
                new ProcessOutputLineItem()  { Id = 1, Text = "2: h264/AVC, 1080i50 (16:9)" }
            };
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService languageService = new MKVMergeLanguageService(jsonSerializationService);
            ILineItemIdentifierService lineItemService = new BluRayTitleLineItemIdentifierService();
            IBluRayTitleParserService parserService = new BluRayTitleParserService(lineItemService, lineItems,languageService);
            BluRayTitleInfo info = parserService.GetTitleInfo();

            info.Video.Should().NotBeNull();
            info.Video.Id.Should().Be("2:");
        }
Exemplo n.º 59
0
        private void LoadMKVLanguageDropDownBoxes()
        {
            IJsonSerializationService<ISOLanguageCodeCollection> jsonSerializationService = new JsonSerializationService<ISOLanguageCodeCollection>();
            IMKVMergeLanguageService service = new MKVMergeLanguageService(jsonSerializationService);
            foreach (MKVMergeLanguageItem item in service.GetLanguages())
            {
                _bindingListSubtitlesMKVMergeDefaultSettingsLanguage.Add(item);
                _bindingListAudioMKVMergeDefaultSettingsLanguage.Add(item);
            }

            bsAudioMKVMergeDefaultSettingsLanguage.DataSource = _bindingListAudioMKVMergeDefaultSettingsLanguage;
            _bindingListAudioMKVMergeDefaultSettingsLanguage.AllowEdit = false;

            bsSubtitlesMKVMergeDefaultSettingsLanguage.DataSource = _bindingListSubtitlesMKVMergeDefaultSettingsLanguage;
            _bindingListSubtitlesMKVMergeDefaultSettingsLanguage.AllowEdit = false;
        }
Exemplo n.º 60
0
        private void HandlesSaveToolStripMenuItemClick()
        {
            this.SetEac3ToConfiguration();
            this.SetEAC3ToRemuxFileNameTemplate();
            if (this.IsAtLeastOneDiscLoaded() && this.IsScreenValid())
            {
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.Filter = "BatchGuy File|*.batchGuyEac3toSettings";
                sfd.Title = "Save eac3to Settings File";
                sfd.ShowDialog();

                if (!string.IsNullOrEmpty(sfd.FileName))
                {
                    dgvBluRayDiscInfo.CurrentCell = null; //force the cell change so cell changed event fires
                    dgvBluRaySummary.CurrentCell = null; //force the cell change so cell changed event fires
                    List<BluRayDiscInfo> discs = this.GetBluRayDiscInfoList();
                    if (_batchGuyEAC3ToSettings == null)
                        _batchGuyEAC3ToSettings = new BatchGuyEAC3ToSettings();

                    _batchGuyEAC3ToSettings.BluRayDiscs = discs;
                    _batchGuyEAC3ToSettings.EAC3ToSettings = _eac3toConfiguration;

                    IJsonSerializationService<BatchGuyEAC3ToSettings> jsonSerializationService = new JsonSerializationService<BatchGuyEAC3ToSettings>();
                    IBatchGuyEAC3ToSettingsService batchGuyEAC3ToSettingsService = new BatchGuyEAC3ToSettingsService(jsonSerializationService);
                    batchGuyEAC3ToSettingsService.Save(sfd.FileName, _batchGuyEAC3ToSettings);
                    if (batchGuyEAC3ToSettingsService.Errors.Count() > 0)
                    {
                        MessageBox.Show(batchGuyEAC3ToSettingsService.Errors.GetErrorMessage(), "Error Occurred.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }