/// <summary>
        /// Function to set on line configuration settings
        /// </summary>
        /// <param name="settingCollection">setting collection</param>        
        private static void AssignOnlineSettings(ComponentSettingCollection settingCollection)
        {
            var gangwayTaskUrl = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdGangwayTaskServiceUrl, StringComparison.OrdinalIgnoreCase));
            if (gangwayTaskUrl != null)
            {
                var authenticationServiceUrl = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdAuthenticationServiceUrl, StringComparison.OrdinalIgnoreCase));
                var authorizationServiceUrl = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdAuthorizationServiceUrl, StringComparison.OrdinalIgnoreCase));
                var maximumChildAge = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdMaximumChildAge, StringComparison.OrdinalIgnoreCase));
                var subscriberId = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SubscriberId, StringComparison.OrdinalIgnoreCase));

                workstation.GangwayServiceBaseAddress = gangwayTaskUrl.Value;
                workstation.AuthenticationServiceBaseAddress = authenticationServiceUrl != null ? authenticationServiceUrl.Value : null;
                workstation.AuthorizationServiceBaseAddress = authorizationServiceUrl != null ? authorizationServiceUrl.Value : null;
                workstation.AdultAge = maximumChildAge != null ? Convert.ToInt16(maximumChildAge.Value, CultureInfo.CurrentCulture) : Zero;

                workstation.SubscriberId = subscriberId != null ? subscriberId.Value : null;
                var setting = settingCollection.FirstOrDefault(a => !string.IsNullOrEmpty(a.Id) && a.Id.Equals(CommonConstants.DataSynchronizationServiceBaseAddress, StringComparison.OrdinalIgnoreCase));
                if (setting != null)
                {
                    workstation.DataSynchronizationServiceBaseAddress = setting.Value;
                }

                FillCommonSettings(settingCollection);
            }
            else
            {
                throw new InvalidOperationException("Configuration setting is not found!, Please contact with Administrator.");
            }
        }
        /// <summary>
        /// Setups the data.
        /// </summary>
        private void SetupData()
        {
            Domain.Dependencies.Register();
            DataAccess.Dependencies.Register();

            Workstation ws = DIContainer.Instance.Resolve<Workstation>();

            ws.Port = new Port { PortId = "1" };
            ws.Ship = new Ship { ShipId = "1" };
            ws.GangwayLocation = new GangwayLocation { LocationId = "1" };
            ws.GangwayServiceBaseAddress = "http://Localhost/";
            ws.ConnectionMode = ConnectionMode.Online;
            ws.ConfigurationServiceBaseAddress = "http://Localhost/";
            ws.AuthenticationServiceBaseAddress = "http://Localhost/";
            ws.AuthorizationServiceBaseAddress = "http://Localhost/";

            this.configurationServiceRepositoryMock = new Mock<ConfigurationServiceRepository>();

            ComponentSettingCollection componentSettingCollection = new ComponentSettingCollection();

            ComponentSetting comp = new ComponentSetting();
            comp.Id = "123";
            comp.Name = "rohit";
            comp.DataType = "454";
            comp.Value = "4654";
            componentSettingCollection.Add(comp);

            DIContainer.Instance.RegisterInstance<ConfigurationServiceRepository>(this.configurationServiceRepositoryMock.Object);
            this.configurationServiceRepositoryMock.Setup(data => data.RetrieveComponentSettingAsync(It.IsAny<string>(), It.IsAny<string>())).Returns(Task.FromResult(componentSettingCollection));
        }
        public static void AssignConfigurationSettings(ComponentSettingCollection settingCollection)
        {
            var workstation = DIContainer.Instance.Resolve<Workstation>();
            var gangwayTaskUrl = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdGangwayTaskServiceUrl, StringComparison.OrdinalIgnoreCase));
            if (gangwayTaskUrl != null)
            {
                var authenticationServiceUrl = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdAuthenticationServiceUrl, StringComparison.OrdinalIgnoreCase));
                var authorizationServiceUrl = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdAuthorizationServiceUrl, StringComparison.OrdinalIgnoreCase));
                var maximumChildAge = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdMaximumChildAge, StringComparison.OrdinalIgnoreCase));
                var subscriberId = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SubscriberId, StringComparison.OrdinalIgnoreCase));
                var autoLogOffInterval = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdAutoLogOffInterval, StringComparison.OrdinalIgnoreCase));

                workstation.GangwayServiceBaseAddress = gangwayTaskUrl.Value;
                workstation.AuthenticationServiceBaseAddress = authenticationServiceUrl != null ? authenticationServiceUrl.Value : null;
                workstation.AuthorizationServiceBaseAddress = authorizationServiceUrl != null ? authorizationServiceUrl.Value : null;
                workstation.AdultAge = maximumChildAge != null ? Convert.ToInt16(maximumChildAge.Value, CultureInfo.CurrentCulture) : Zero;

                workstation.SubscriberId = subscriberId != null ? subscriberId.Value : null;
                workstation.AutoLogOffInterval = autoLogOffInterval != null ? Convert.ToInt32(autoLogOffInterval.Value, CultureInfo.CurrentCulture) : Zero;

                var setting = settingCollection.FirstOrDefault(a => !string.IsNullOrEmpty(a.Id) && a.Id.Equals(CommonConstants.DataSynchronizationServiceBaseAddress, StringComparison.OrdinalIgnoreCase));
                if (setting != null)
                {
                    workstation.DataSynchronizationServiceBaseAddress = setting.Value;
                }

                ////todo--------------------------
                ////NOTE : In actual code ConnectionMode will be set from common base class that will decide whether application will run in online or offline
                ////------------------------------
                if (ConfigurationManager.AppSettings["ConnectionModeOnline"].Equals("true"))
                {
                    workstation.ConnectionMode = ConnectionMode.Online;
                }
                else
                {
                    workstation.ConnectionMode = ConnectionMode.Offline;
                }

                ////todo--------------------------
                ////NOTE : In actual code OceanMode will be set from central configuration service that will decide whether application will run in Ocean mod on or off
                ////------------------------------
                workstation.OceanMode = OceanMode.On;
                workstation.ApplicationSettings = ApplicationSettings.GetApplicationSettings;
                workstation.MaxRecentPersonCount = CommonConstants.MaxRecentPersonCount;
            }
            else
            {
                throw new InvalidOperationException("Configuration setting is not found!, Please contact with Administrator.");
            }
        }
 public static void AssignConfigurationSettings(ComponentSettingCollection settingCollection)
 {
     if (workstation.ConnectionMode == ConnectionMode.Online)
     {
         AssignOnlineSettings(settingCollection);
     }
     else if (workstation.ConnectionMode == ConnectionMode.Offline)
     {
         AssignOfflineSettings(settingCollection);
     }
     else
     {
         throw new InvalidOperationException("Configuration setting is not found!, Please contact with Administrator.");
     }
 }
 public async Task RetrieveComponentSettingsTest()
 {
     try
     {
         this.SetupGetRequests();
         ComponentSettingCollection objParam = new ComponentSettingCollection();
         this.componentSettingsManager.Setup(mokeItem => mokeItem.ListAsync()).Returns(Task.FromResult(new ComponentSettingCollection()));
         var response = await this.componentSettingsController.Get();
         var result = await response.ExecuteAsync(new CancellationToken(false));
         ComponentSettingCollection applicationSettingsCollection = null;
         Assert.IsTrue(result.IsSuccessStatusCode);
         Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
         Assert.IsTrue(result.TryGetContentValue(out applicationSettingsCollection));
         Assert.IsNotNull(applicationSettingsCollection);
     }
     finally
     {
         this.Dispose();
     }
 }
        /// <summary>
        /// Maps the configuration data.
        /// </summary>
        /// <param name="dataReader">The data reader.</param>
        /// <returns>The component setting collection</returns>
        internal static async Task<ComponentSettingCollection> MapConfigurationData(SqlDataReader dataReader)
        {
            var componentSettingCollection = new ComponentSettingCollection();
            if (dataReader != null)
            {
                while (await dataReader.ReadAsync())
                {
                    var ComponentSettings = new ComponentSetting
                    {
                        Id = dataReader.GuidField(Id).ToString(),
                        Name = dataReader.StringField(Name),
                        Value = dataReader.StringField(Value)
                    };

                    componentSettingCollection.Add(ComponentSettings);
                }
            }

            return componentSettingCollection;
        }
 /// <summary>
 /// Function to set off line configuration settings
 /// </summary>
 /// <param name="settingCollection">setting collection</param>        
 private static void AssignOfflineSettings(ComponentSettingCollection settingCollection)
 {
     var maximumChildAge = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdMaximumChildAge, StringComparison.OrdinalIgnoreCase));
     workstation.AdultAge = maximumChildAge != null ? Convert.ToInt16(maximumChildAge.Value, CultureInfo.CurrentCulture) : Zero;
     FillCommonSettings(settingCollection);
 }
        /// <summary>
        /// Fills the common settings for Off line and On line setting..
        /// </summary>
        /// <param name="settingCollection">The setting collection.</param>
        private static void FillCommonSettings(ComponentSettingCollection settingCollection)
        {
            ////todo--------------------------
            ////NOTE : In actual code OceanMode will be set from central configuration service that will decide whether application will run in Ocean mod on or off
            ////------------------------------
            workstation.OceanMode = OceanMode.On;
            workstation.OfflineLocalDatabaseConnectionStringName = ConfigurationManager.AppSettings[LocalDatabaseConnectionString];
            workstation.ApplicationSettings = ApplicationSettings.GetApplicationSettings;
            workstation.MaxRecentPersonCount = CommonConstants.MaxRecentPersonCount;

            var autoLogOffInterval = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdAutoLogOffInterval, StringComparison.OrdinalIgnoreCase));
            workstation.AutoLogOffInterval = autoLogOffInterval != null ? Convert.ToInt32(autoLogOffInterval.Value, CultureInfo.CurrentCulture) : Zero;
            var voyageRolloverEventType = settingCollection.FirstOrDefault(a => a.Id.Equals(CommonConstants.SettingIdVoyageRolloverEventTypeId, StringComparison.OrdinalIgnoreCase));
            workstation.VoyageRolloverEventTypeId = voyageRolloverEventType != null ? voyageRolloverEventType.Value : null;
        }
 /// <summary>
 /// Setups the data.
 /// </summary>
 private void SetupData()
 {
     var componentSettings = new ComponentSettingCollection
     {
         new ComponentSetting{DataType = "string",Name="Test",Id="A77B7896-AC65-451B-88C6-33AB98507AF0",Value="Test"},
         new ComponentSetting{DataType = "string",Name="Test",Id="7F8A5945-D994-44FD-82DA-6A7773037683",Value="Test"},
          new ComponentSetting{DataType = "string",Name="Test",Id="7E0C4CD3-39D9-4787-82BE-396530A88E3C",Value="Test"},
           new ComponentSetting{DataType = "string",Name="Test",Id="A9DBE927-714C-4F12-810C-6A6B63B83C42",Value="Test"},
            new ComponentSetting{DataType = "string",Name="Test",Id="B3156D7C-8B2B-4246-B0BF-3BB04AD4E5CC",Value="Test"},
             new ComponentSetting{DataType = "string",Name="Test",Id="6D9C1632-4C9A-4B1A-9B9C-A7C4CCF4FA09",Value="Test"},
              new ComponentSetting{DataType = "string",Name="Test",Id="917EF797-1E8C-47CE-8DB5-F651CBE99981",Value="Test"},
               new ComponentSetting{DataType = "string",Name="Test",Id="9F549545-C1B8-4254-9E89-303842279DCE",Value="Test"},
         new ComponentSetting{DataType = "string",Name="Test",Id="CDCED216-59DF-4188-9B1E-6D0FCF5F58F0",Value="Test"},
          new ComponentSetting{DataType = "string",Name="Test",Id="798C9686-9B67-4A66-97AF-4AF0C381B5C0",Value="Test"},
           new ComponentSetting{DataType = "string",Name="Test",Id="BE8076D0-8F15-48CC-8D39-532608B215A7",Value="Test"},
            new ComponentSetting{DataType = "string",Name="Test",Id="BD0E8977-8AA4-4354-80A5-04A2ACD28F6E",Value="Test"},
             new ComponentSetting{DataType = "string",Name="Test",Id="D144B191-157E-46F5-88A6-0007935A8A58",Value="1"},
              new ComponentSetting{DataType = "string",Name="Test",Id="FF782CC1-93DE-4BDD-B61A-4C9D0F2CDED6",Value="Test"},
               new ComponentSetting{DataType = "string",Name="Test",Id="FF782CC1-93DE-4BDD-B61A-4C9D0F2CDED5",Value="1"},
                new ComponentSetting{DataType = "string",Name="Test",Id="2C1777B6-42AB-4B1B-B73B-98CC910421CD",Value="1"},
                 new ComponentSetting{DataType = "string",Name="Test",Id="3EEFD93D-4384-4BDF-855B-3548BEA664FC",Value="Test"},
                  new ComponentSetting{DataType = "string",Name="Test",Id="D852E2C3-8986-41B8-AD1A-5C46D17E8DE2",Value="Test"},
             new ComponentSetting{DataType = "string",Name="Test",Id="12DDED43-67FB-434B-87C5-EF37104C4AAD",Value="Test"},
            new ComponentSetting{DataType = "string",Name="Test",Id="C1317421-B706-416E-A06F-F5211A53090A",Value="Test"}
     };
     this.componentSettingsClient.Setup(mockItem => mockItem.RetrieveComponentSettingAsync(It.IsAny<string>(), It.IsAny<string>())).Returns(Task.FromResult(JsonConvert.SerializeObject(componentSettings)));
 }