예제 #1
0
        internal static byte[] buyResponse(string token, int itemId)
        {
            using (MemoryStream stream = new MemoryStream())
            {
                using (Utf8JsonWriter writer = new Utf8JsonWriter(stream, JW_OPTS))
                {
                    writer.WriteStartObject();

                    byte b = DataBase.buyItem(token, itemId);

                    switch (b)
                    {
                    case 0:
                        writer.WriteBoolean("success", true);
                        break;

                    case 1:
                        writer.WriteBoolean("success", false);
                        writer.WriteString("problem", "No quick buy for this item");
                        break;

                    case 2:
                        writer.WriteBoolean("success", false);
                        writer.WriteString("problem", "Item sale period has ended");
                        break;

                    case 3:
                        writer.WriteBoolean("success", false);
                        writer.WriteString("problem", "The price is lower than 80% of the top bid");
                        break;

                    case 4:
                        writer.WriteBoolean("success", false);
                        writer.WriteString("problem", "No item with that ID");
                        break;

                    case 5:
                        throw new Exception("Database error");
                        break;

                    default:
                        writer.WriteBoolean("success", false);
                        writer.WriteString("problem", "Unknown error");
                        break;
                    }

                    writer.WriteEndObject();
                }

                return(stream.ToArray());
            }
        }