public System.Object ServerCommunication(Version clientversion, ICommunicateable communicator, bool full, System.Object obj)
 {
     try
     {
         if (clientversion.Major > 0)
         {
             if (full)
             {
                 communicator.SendString(Id);
                 communicator.SendString(Name);
                 communicator.SendInt(StockIndexes.Count);
                 if (StockIndexes.Count > 0)
                 {
                     foreach (StockIndex stockindex in StockIndexes.Values)
                         communicator.SendString(stockindex.Id);
                 }
                 PriceHistory.ServerCommunication(clientversion, communicator, full, obj);
             }
             if (clientversion.Major > 0 && clientversion.Minor >= 1)
             {
                 communicator.SendDouble(MinPrice);
                 communicator.SendDouble(MaxPrice);
             }
             communicator.SendDouble(Price);
             communicator.SendInt(Available);
             communicator.SendInt(OwnedByPlayers);
         }
         return this;
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
 }