fCraft.FlatfilePlayerDBProvider.Save C# (CSharp) Method

Save() public method

Saves the whole database.
public Save ( ) : void
return void
        public void Save() {
            const string tempFileName = Paths.PlayerDBFileName + ".bin.temp";

            using( PlayerDB.GetReadLock() ) {
                using( FileStream fs = OpenWrite( tempFileName ) ) {
                    BinaryWriter writer = new BinaryWriter( fs );
                    writer.Write( FormatVersion );
                    writer.Write( maxID );
                    writer.Write( RankManager.Ranks.Count );
                    foreach( Rank rank in RankManager.Ranks ) {
                        writer.Write( (byte)rank.Index );
                        writer.Write( rank.FullName );
                    }
                    int total = PlayerDB.List.Count;
                    writer.Write( total );
                    for( int i = 0; i < total; i++ ) {
                        SaveBinaryFormat0( PlayerDB.List[i], writer );
                    }
                }

                try {
                    Paths.MoveOrReplaceFile( tempFileName, Paths.PlayerDBFileName + ".bin" );
                } catch( Exception ex ) {
                    Logger.Log( LogType.Error,
                                "PlayerDB.SaveBinary: An error occurred while trying to save PlayerDB: {0}", ex );
                }
            }
        }