Esempio n. 1
0
      public SlotModel Read(string filePath, string name, ClientSettings settings)
      {
         var slots = new List<SlotData>();
         var serializer = new XmlFileSerializer<SlotSummary>();
         
         try
         {
            slots = serializer.Deserialize(filePath).Slots;
         }
         catch (Exception ex)
         {
            _logger.ErrorFormat(ex, "{0}", ex.Message);
         }

         var slotData = slots.FirstOrDefault(x => x.GridData.Name == name);
         if (slotData != null)
         {
            var slot = AutoMapper.Mapper.Map<SlotData, SlotModel>(slotData);
            Protein protein = _proteinDictionary.GetProteinOrDownload(slotData.UnitInfo.ProjectID);

            // build unit info logic
            var unitInfoLogic = ServiceLocator.Resolve<UnitInfoLogic>();
            unitInfoLogic.CurrentProtein = protein;
            unitInfoLogic.UnitInfoData = slotData.UnitInfo;
            slot.Prefs = _prefs;
            slot.Settings = settings;
            slot.UnitInfoLogic = unitInfoLogic;
            return slot;
         }

         return new SlotModel { Prefs = _prefs, Settings = settings };
      }
Esempio n. 2
0
        public IClient Create(ClientSettings settings)
        {
            if (settings == null) throw new ArgumentNullException("settings");

             if (String.IsNullOrEmpty(settings.Name))
             {
            throw new ArgumentException("Failed to create client.  No name given.");
             }

             if (settings.IsFahClient() && String.IsNullOrEmpty(settings.Server))
             {
            throw new ArgumentException("Failed to create client.  No server given.");
             }

             if (settings.IsLegacy() && String.IsNullOrEmpty(settings.Path))
             {
            throw new ArgumentException("Failed to create client.  No path given.");
             }

             string preCleanInstanceName = settings.Name;
             ICollection<string> cleanupWarnings = CleanupSettings(settings);
             if (!Validate.ClientName(settings.Name))
             {
            throw new ArgumentException(String.Format(CultureInfo.CurrentCulture,
               "Failed to create client.  Client name '{0}' is not valid after cleaning.", preCleanInstanceName));
             }

             if (cleanupWarnings.Count != 0)
             {
            _logger.Warn("------------------------");
            _logger.Warn("Client Settings Warnings");
            _logger.Warn("------------------------");
            _logger.Warn("Client Name: {0}", settings.Name);

            foreach (var error in cleanupWarnings)
            {
               _logger.Warn(error);
            }
             }

             IClient client;
             if (settings.IsFahClient())
             {
            client = ServiceLocator.Resolve<FahClient>();
             }
             else if (settings.IsLegacy())
             {
            client = ServiceLocator.Resolve<LegacyClient>();
             }
             else
             {
            // no External support yet
            throw new InvalidOperationException("Client type is not supported.");
             }

             client.Settings = settings;
             return client;
        }
Esempio n. 3
0
 public void AddTest3()
 {
     // Arrange
      var settings = new ClientSettings { Name = "test" };
      _factory.Expect(x => x.Create(settings)).Return(
     new FahClient(MockRepository.GenerateStub<IFahClientInterface>()));
      // Act
      _clientDictionary.Add(settings);
      // Assert
      _factory.VerifyAllExpectations();
 }
Esempio n. 4
0
 private IClient CreateWrapper(ClientSettings settings)
 {
    try
    {
       return Create(settings);
    }
    catch (ArgumentException ex)
    {
       _logger.ErrorFormat(ex, "{0}", ex.Message);
       return null;
    }
 }
Esempio n. 5
0
      /// <summary>
      /// Execute Data Retrieve
      /// </summary>
      public void Execute(ClientSettings settings)
      {
         if (settings == null) throw new ArgumentNullException("settings");

         Settings = settings;

         switch (Settings.LegacyClientSubType)
         {
            case LegacyClientSubType.Path:
               RetrievePathInstance();
               break;
            case LegacyClientSubType.Http:
               RetrieveHttpInstance();
               break;
            case LegacyClientSubType.Ftp:
               RetrieveFtpInstance();
               break;
            default:
               throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture,
                  "Instance Type '{0}' is not implemented", Settings.LegacyClientSubType));
         }
      }
Esempio n. 6
0
 public void CreateCollectionTest()
 {
     var builder = new ClientFactory();
      var result1 = new ClientSettings(ClientType.Legacy)
                {
                   LegacyClientSubType = LegacyClientSubType.Path,
                   Name = "Client 1",
                   Path = @"\\test\path1\"
                };
      var result2 = new ClientSettings(ClientType.Legacy)
                {
                   LegacyClientSubType = LegacyClientSubType.Http,
                   Name = "Client 2",
                   Path = @"\\test\path2\"
                };
      var result3 = new ClientSettings(ClientType.Legacy)
                {
                   LegacyClientSubType = LegacyClientSubType.Ftp
                };
      var instances = builder.CreateCollection(new[] { result1, result2, result3 });
      Assert.AreEqual(2, instances.Count());
 }
Esempio n. 7
0
 public void CreateCollectionTest()
 {
    var legacyClientFactory = MockRepository.GenerateStub<ILegacyClientFactory>();
    legacyClientFactory.Stub(x => x.Create()).Return(new LegacyClient());
    var builder = new ClientFactory { LegacyClientFactory = legacyClientFactory };
    var result1 = new ClientSettings(ClientType.Legacy)
                  {
                     LegacyClientSubType = LegacyClientSubType.Path,
                     Name = "Client 1",
                     Path = @"\\test\path1\"
                  };
    var result2 = new ClientSettings(ClientType.Legacy)
                  {
                     LegacyClientSubType = LegacyClientSubType.Http,
                     Name = "Client 2",
                     Path = @"\\test\path2\"
                  };
    var result3 = new ClientSettings(ClientType.Legacy)
                  {
                     LegacyClientSubType = LegacyClientSubType.Ftp
                  };
    var instances = builder.CreateCollection(new[] { result1, result2, result3 });
    Assert.AreEqual(2, instances.Count());
 }
Esempio n. 8
0
 public void CreateTest()
 {
    var legacyClientFactory = MockRepository.GenerateStub<ILegacyClientFactory>();
    legacyClientFactory.Stub(x => x.Create()).Return(new LegacyClient());
    var builder = new ClientFactory { LegacyClientFactory = legacyClientFactory };
    var settings = new ClientSettings(ClientType.Legacy)
                   {
                      Name = "Client{ 1",
                      Path = @"\\test\path\"
                   };
    var instance = builder.Create(settings);
    Assert.IsNotNull(instance);
    Assert.AreEqual("Client 1", instance.Settings.Name);
 }
Esempio n. 9
0
 public void Create_LegacyClientFactoryNull_Test()
 {
    var builder = new ClientFactory();
    var settings = new ClientSettings(ClientType.Legacy)
    {
       Name = "LegacyClient",
       Path = @"\\test\path\"
    };
    var instance = builder.Create(settings);
    Assert.IsNull(instance);
 }
Esempio n. 10
0
 public void Create_FahClientFactoryNull_Test()
 {
    var builder = new ClientFactory();
    var settings = new ClientSettings(ClientType.FahClient)
    {
       Name = "FahClient",
       Server = "192.168.100.200"
    };
    var instance = builder.Create(settings);
    Assert.IsNull(instance);
 }
Esempio n. 11
0
        private static ICollection<string> CleanupSettings(ClientSettings settings)
        {
            var warnings = new List<string>();

             #region General Settings (common to FahClient and Legacy)

             if (!Validate.ClientName(settings.Name))
             {
            // remove illegal characters
            warnings.Add(String.Format(CultureInfo.InvariantCulture,
               "Client Name '{0}' contained invalid characters and was cleaned.", settings.Name));
            settings.Name = Validate.CleanClientName(settings.Name);
             }

             if (settings.ClientTimeOffset < Constants.MinOffsetMinutes ||
             settings.ClientTimeOffset > Constants.MaxOffsetMinutes)
             {
            warnings.Add("Client time offset is out of range, defaulting to 0.");
            settings.ClientTimeOffset = 0;
             }

             #endregion

             if (settings.IsLegacy())
             {
            #region Legacy Settings

            if (String.IsNullOrEmpty(settings.FahLogFileName))
            {
               warnings.Add("No remote FAHlog.txt filename, loading default.");
               settings.FahLogFileName = Constants.FahLogFileName;
            }

            if (String.IsNullOrEmpty(settings.UnitInfoFileName))
            {
               warnings.Add("No remote unitinfo.txt filename, loading default.");
               settings.UnitInfoFileName = Constants.UnitInfoFileName;
            }

            if (String.IsNullOrEmpty(settings.QueueFileName))
            {
               warnings.Add("No remote queue.dat filename, loading default.");
               settings.QueueFileName = Constants.QueueFileName;
            }

            #endregion
             }
             else if (settings.IsFahClient())
             {
            if (!Validate.ServerPort(settings.Port))
            {
               warnings.Add("Server port is invalid, loading default.");
               settings.Port = Constants.DefaultFahClientPort;
            }
             }

             return warnings.AsReadOnly();
        }
Esempio n. 12
0
 public void CreateTest()
 {
     var builder = new ClientFactory();
      var settings = new ClientSettings(ClientType.Legacy)
                 {
                    Name = "Client{ 1",
                    Path = @"\\test\path\"
                 };
      var instance = builder.Create(settings);
      Assert.IsNotNull(instance);
      Assert.AreEqual("Client 1", instance.Settings.Name);
 }