public async Task <Server> AddServerAsync(string hostName, OsFamilly osFamilly, string operatingSystemName, string environmentName, System.Net.IPAddress subnetIP) { var os = await this.GetorAddOperatingSystemByNameAsync(osFamilly, operatingSystemName); var env = await _envRepository.FirstAsync(new EnvironmentSpecification(environmentName)); var server = new Server(hostName, os, env, 2, 4, subnetIP); var groupOS = await _groupRepository.FirstAsync(new GroupSpecification(os.Name)); groupOS.AddServer(server); await _groupRepository.UpdateAsync(groupOS); return(server); }
public OsSpecification(OsFamilly osFamilly, string name) { Query .Where(g => g.Familly == osFamilly & g.Name == name.ToLower()); }
public OperatingSystem(String name, OsFamilly osFamilly = OsFamilly.Windows) { Name = !String.IsNullOrWhiteSpace(name) ? name.ToLower() : throw new ArgumentNullException(nameof(name)); Familly = osFamilly; }
public async Task <Models.OperatingSystem> GetorAddOperatingSystemByNameAsync(OsFamilly osFamilly, string name) { _logger.LogDebug($"Get Or Add Operating System for {osFamilly} by : '{name}'"); var os = await _osRepository.FirstOrDefaultAsync(new OsSpecification(name)); if (null == os) { _logger.LogDebug($"Create Operating System for {osFamilly} with name : '{name}'"); os = new Models.OperatingSystem(name, osFamilly); await _osRepository.AddAsync(os); await this.GetorAddGroupAsync(name, osFamilly.ToString()); } return(os); }