partial void DeleteAutoUpdateFile_Lobby(AutoUpdateFile_Lobby instance);
partial void InsertAutoUpdateFile_Lobby(AutoUpdateFile_Lobby instance);
private void attach_AutoUpdateFile_Lobbies(AutoUpdateFile_Lobby entity) { this.SendPropertyChanging(); entity.AutoUpdateFile = this; }
private void detach_AutoUpdateFile_Lobbies(AutoUpdateFile_Lobby entity) { this.SendPropertyChanging(); entity.Lobby = null; }
public static void AddAutoUpdateFiles(string baseDirectory) { using (var db = new CSSDataContext()) { foreach (var path in Directory.GetDirectories(baseDirectory)) { int lobbyId; if (!int.TryParse(Path.GetFileName(path), out lobbyId)) continue; //Find lobby var lobby = db.Lobbies.FirstOrDefault(p => p.Id == lobbyId); var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); foreach (var filePath in files) { string file = filePath.Substring(path.Length, filePath.Length - path.Length); if (file.StartsWith(@"\")) file = file.Remove(0, 1); //Check if file_lobby exists var fileLobby = lobby.AutoUpdateFile_Lobbies.FirstOrDefault(p => p.AutoUpdateFile.Filename == file); if (fileLobby == null) { //Check if file exists var autoUpdateFile = db.AutoUpdateFiles.FirstOrDefault(p => p.Filename == file); if (autoUpdateFile == null) { //Create autoupdatefile autoUpdateFile = new AutoUpdateFile() { Filename = file, IsProtected = true }; } fileLobby = new AutoUpdateFile_Lobby() { AutoUpdateFile = autoUpdateFile, CurrentVersion = new Version(1, 0).ToString(), ValidChecksum = HashFile(filePath), DateCreated = DateTime.Now, DateModified = DateTime.Now, }; lobby.AutoUpdateFile_Lobbies.Add(fileLobby); } else { var version = new Version(fileLobby.CurrentVersion); var nextVersion = new Version(version.Minor, version.Minor + 1); fileLobby.CurrentVersion = nextVersion.ToString(); fileLobby.ValidChecksum = HashFile(filePath); fileLobby.DateModified = DateTime.Now; } } db.SubmitChanges(); } } }