public async void AddServerRole() { var serverRoleDto = new ServerRoleDto { ServerId = SetupManager.Instance.ServerId, ServerIP = SetupManager.Instance.IPAddress, ServerName = Environment.MachineName, ServerRoleEnum = ServerRoleEnum.Database, IsActive = true }; try { using (var context = new SqlDbContext(Main.ConnectionInfo.ConnectionString)) { var oldRoles = context.ServerRoles.Where(x => x.ServerRoleEnum == ServerRoleEnum.Database && x.IsActive == true).ToList(); if (oldRoles.Count == 0) { context.ServerRoles.Add(serverRoleDto); await context.SaveChangesAsync(); } else if (oldRoles.Count == 1) { oldRoles.First().IsActive = false; context.Entry(oldRoles.First()).State = System.Data.Entity.EntityState.Modified; context.ServerRoles.Add(serverRoleDto); await context.SaveChangesAsync(); } else if (oldRoles.Count > 1) { var toDelete = oldRoles.Take(oldRoles.Count - 1).ToList(); foreach (var item in toDelete) { item.IsActive = false; context.Entry(item).State = System.Data.Entity.EntityState.Modified; } oldRoles.Last().ServerId = serverRoleDto.ServerId; oldRoles.Last().ServerIP = serverRoleDto.ServerIP; oldRoles.Last().ServerName = serverRoleDto.ServerName; oldRoles.Last().ServerRoleEnum = serverRoleDto.ServerRoleEnum; context.Entry(oldRoles.Last()).State = System.Data.Entity.EntityState.Modified; await context.SaveChangesAsync(); } } } catch (Exception ex) { logger.Error(ex, $"Error occured EnsureDatabase."); TxtErrorNotAdded.Visibility = Visibility.Visible; } }
public async Task <bool> AddIndexerRole() { var serverRoleDto = new ServerRoleDto { ServerId = ComputerHelper.Instance.ServerId, ServerIP = ComputerHelper.Instance.IPAddress, ServerName = Environment.MachineName, ServerRoleEnum = ServerRoleEnum.Indexer, IsActive = true }; return(await AddServerRoleInner(ServerRoleEnum.Indexer, serverRoleDto)); }
public async Task <bool> AddDatabaseRole(string serverId, string ipAddress, string machineName) { var serverRoleDto = new ServerRoleDto { ServerId = serverId, ServerIP = ipAddress, ServerName = machineName, ServerRoleEnum = ServerRoleEnum.Database, IsActive = true }; return(await AddServerRoleInnerAllowOne(ServerRoleEnum.Database, serverRoleDto)); }
private async Task <bool> AddServerRoleInner(ServerRoleEnum serverRoleEnum, ServerRoleDto serverRoleDto) { try { using (var context = new SqlDbContext(DatabaseHelper.Instance.ConnectionInfo.ConnectionString)) { var oldRoles = await context.ServerRoles.Where(x => x.ServerRoleEnum == serverRoleEnum && x.IsActive == true).ToListAsync(); if (oldRoles.Count == 0) { context.ServerRoles.Add(serverRoleDto); await context.SaveChangesAsync(); } else { if (oldRoles.Count(x => x.ServerId == serverRoleDto.ServerId && x.ServerRoleEnum == serverRoleEnum) > 0) { return(false); } else { context.ServerRoles.Add(serverRoleDto); await context.SaveChangesAsync(); } } await GetRoles(); NotifyPropertyChanged(""); return(true); } } catch (Exception ex) { logger.Error(ex, $"Error occured EnsureDatabase."); } return(false); }
//public async Task<bool> AddServerRole(ServerRoleEnum serverRoleEnum) //{ // if (DatabaseHelper.Instance.Status == DatabaseHelperStatusEnum.CelsusDatabaseVersionOk) // { // } // else // { // return false; // } // var serverRoleDto = new ServerRoleDto // { // ServerId = ComputerHelper.Instance.ServerId, // ServerIP = ComputerHelper.Instance.IPAddress, // ServerName = Environment.MachineName, // ServerRoleEnum = serverRoleEnum, // IsActive = true // }; // return await AddServerRoleInner(serverRoleEnum, serverRoleDto); //} private async Task <bool> AddServerRoleInnerAllowOne(ServerRoleEnum serverRoleEnum, ServerRoleDto serverRoleDto) { try { using (var context = new SqlDbContext(DatabaseHelper.Instance.ConnectionInfo.ConnectionString)) { var oldRoles = await context.ServerRoles.Where(x => x.ServerRoleEnum == serverRoleEnum && x.IsActive == true).ToListAsync(); if (oldRoles.Count == 0) { context.ServerRoles.Add(serverRoleDto); await context.SaveChangesAsync(); } else if (oldRoles.Count == 1) { oldRoles.First().IsActive = false; context.Entry(oldRoles.First()).State = System.Data.Entity.EntityState.Modified; context.ServerRoles.Add(serverRoleDto); await context.SaveChangesAsync(); } else if (oldRoles.Count > 1) { var toDelete = oldRoles.Take(oldRoles.Count - 1).ToList(); foreach (var item in toDelete) { item.IsActive = false; context.Entry(item).State = System.Data.Entity.EntityState.Modified; } oldRoles.Last().ServerId = serverRoleDto.ServerId; oldRoles.Last().ServerIP = serverRoleDto.ServerIP; oldRoles.Last().ServerName = serverRoleDto.ServerName; oldRoles.Last().ServerRoleEnum = serverRoleDto.ServerRoleEnum; context.Entry(oldRoles.Last()).State = System.Data.Entity.EntityState.Modified; await context.SaveChangesAsync(); } await GetRoles(); NotifyPropertyChanged(""); return(true); } } catch (Exception ex) { logger.Error(ex, $"Error occured EnsureDatabase."); } return(false); }