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();
                }
            }
        }