public virtual Dictionary <string, string> GetMachineConfiguration(string machineName, string configurationName = null)
        {
            configurationName = configurationName ?? CommonConfigName;
            Machine       machine = CoreRegistryRepository.GetOneMachineWhere(c => c.Name == machineName);
            Configuration config  = machine.Configurations.FirstOrDefault(c => c.Name.Equals(configurationName));

            if (config != null)
            {
                return(SettingsToDictionary(config.Settings));
            }
            return(new Dictionary <string, string>());
        }
        public virtual void SetMachineConfiguration(string machineName, Dictionary <string, string> settings, string configurationName = null)
        {
            configurationName = configurationName ?? CommonConfigName;
            Machine machine = CoreRegistryRepository.GetOneMachineWhere(c => c.Name == machineName);

            lock (Machine.ConfigurationLock)
            {
                Configuration config = machine.Configurations.FirstOrDefault(c => c.Name.Equals(configurationName));
                if (config == null)
                {
                    config = new Configuration {
                        Name = configurationName
                    };
                    config.MachineId = machine.Id;
                    config           = CoreRegistryRepository.Save(config);
                }
                config.Settings = DictionaryToSettings(settings, config).ToList();
                CoreRegistryRepository.Save(config);
            }
        }
예제 #3
0
 public virtual CoreServiceResponse RegisterClient(Client client)
 {
     try
     {
         Args.ThrowIfNullOrEmpty(client?.Secret, nameof(client.Secret));
         Args.ThrowIfNullOrEmpty(client?.ServerHost, nameof(client.ServerHost));
         Args.ThrowIfNull(client?.Machine, nameof(client.Machine));
         Args.ThrowIf(client.Port <= 0, "Server Port not specified");
         IUserManager mgr = (IUserManager)UserManager.Clone();
         mgr.HttpContext = HttpContext;
         string clientName = client.ToString();
         CoreServiceResponse   response      = new CoreServiceResponse();
         CheckUserNameResponse checkUserName = mgr.IsUserNameAvailable(clientName);
         if (!(bool)checkUserName.Data) // already exists
         {
             response.Success = true;
             response.Message = "Already registered";
         }
         else
         {
             SignUpResponse signupResponse = mgr.SignUp(client.GetPseudoEmail(), clientName, client.Secret.Sha1(), false);
             if (!signupResponse.Success)
             {
                 throw new Exception(response.Message);
             }
             Machine machine = CoreRegistryRepository.GetOneMachineWhere(m => m.Name == client.MachineName);
             client   = CoreRegistryRepository.GetOneClientWhere(c => c.MachineId == machine.Id && c.MachineName == client.MachineName && c.ApplicationName == client.ApplicationName && c.ServerHost == client.ServerHost && c.Port == client.Port);
             response = new CoreServiceResponse {
                 Success = true, Data = client.ToDynamicData().ToJson()
             };
         }
         return(response);
     }
     catch (Exception ex)
     {
         return(HandleException(ex, nameof(CoreApplicationRegistrationService.RegisterClient)));
     }
 }