public async Task <IActionResult> Create(BanFileMonitorDto model) { var gameServerDto = await _gameServersRepository.GetGameServer(model.ServerId); if (gameServerDto == null) { return(NotFound()); } if (!ModelState.IsValid) { await AddGameServersViewData(model.ServerId); return(View(model)); } var banFileMonitorDto = new BanFileMonitorDto().WithServerDto(gameServerDto); var canCreateBanFileMonitor = await _authorizationService.AuthorizeAsync(User, banFileMonitorDto, AuthPolicies.CreateBanFileMonitor); if (!canCreateBanFileMonitor.Succeeded) { return(Unauthorized()); } banFileMonitorDto.FilePath = model.FilePath; await _banFileMonitorsRepository.CreateBanFileMonitor(banFileMonitorDto); _logger.LogInformation(EventIds.Management, "User {User} has created a new ban file monitor with Id {Id}", User.Username(), banFileMonitorDto.BanFileMonitorId); this.AddAlertSuccess($"The ban file monitor has been created for {gameServerDto.Title}"); return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Edit(BanFileMonitorDto model) { var banFileMonitorDto = await _banFileMonitorsRepository.GetBanFileMonitor(model.BanFileMonitorId); if (banFileMonitorDto == null) { return(NotFound()); } if (!ModelState.IsValid) { await AddGameServersViewData(model.ServerId); return(View(banFileMonitorDto)); } var canEditBanFileMonitor = await _authorizationService.AuthorizeAsync(User, banFileMonitorDto, AuthPolicies.EditBanFileMonitor); if (!canEditBanFileMonitor.Succeeded) { return(Unauthorized()); } banFileMonitorDto.FilePath = model.FilePath; await _banFileMonitorsRepository.UpdateBanFileMonitor(banFileMonitorDto); _logger.LogInformation(EventIds.Management, "User {User} has updated {BanFileMonitorId} against {ServerId}", User.Username(), banFileMonitorDto.BanFileMonitorId, banFileMonitorDto.ServerId); this.AddAlertSuccess($"The ban file monitor has been created for {banFileMonitorDto.GameServer.Title}"); return(RedirectToAction(nameof(Index))); }
public static BanFileMonitorDto WithServerDto(this BanFileMonitorDto banFileMonitorDto, GameServerDto gameServerDto) { banFileMonitorDto.GameServer = gameServerDto; banFileMonitorDto.ServerId = gameServerDto.ServerId; return(banFileMonitorDto); }
public async Task CreateBanFileMonitor(BanFileMonitorDto banFileMonitorDto) { if (banFileMonitorDto == null) { throw new ArgumentNullException(nameof(banFileMonitorDto)); } var server = await _legacyContext.GameServers.SingleOrDefaultAsync(s => s.ServerId == banFileMonitorDto.ServerId); if (server == null) { throw new NullReferenceException(nameof(server)); } var banFileMonitor = new BanFileMonitors { BanFileMonitorId = Guid.NewGuid(), FilePath = banFileMonitorDto.FilePath, //RemoteFileSize = banFileMonitorDto.RemoteFileSize, LastSync = DateTime.UtcNow.AddHours(-4), //LastError = string.Empty, GameServerServer = server }; _legacyContext.BanFileMonitors.Add(banFileMonitor); await _legacyContext.SaveChangesAsync(); }
public static BanFileMonitorDto ToDto(this BanFileMonitors banFileMonitor) { var banFileMonitorDto = new BanFileMonitorDto { BanFileMonitorId = banFileMonitor.BanFileMonitorId, FilePath = banFileMonitor.FilePath, RemoteFileSize = banFileMonitor.RemoteFileSize, LastSync = banFileMonitor.LastSync, ServerId = banFileMonitor.GameServerServer.ServerId, GameServer = banFileMonitor.GameServerServer.ToDto() }; return(banFileMonitorDto); }
public async Task UpdateBanFileMonitor(BanFileMonitorDto banFileMonitorDto) { if (banFileMonitorDto == null) { throw new ArgumentNullException(nameof(banFileMonitorDto)); } var banFileMonitor = await _legacyContext.BanFileMonitors.SingleOrDefaultAsync(bfm => bfm.BanFileMonitorId == banFileMonitorDto.BanFileMonitorId); if (banFileMonitor == null) { throw new NullReferenceException(nameof(banFileMonitor)); } banFileMonitor.FilePath = banFileMonitorDto.FilePath; banFileMonitor.RemoteFileSize = banFileMonitorDto.RemoteFileSize; banFileMonitor.LastSync = banFileMonitorDto.LastSync; await _legacyContext.SaveChangesAsync(); }