static void ReceiveHander(string[] recv) { int opcode = -1; int idx = -1; try { opcode = Int32.Parse(recv[0]); idx = Int32.Parse(recv[1]); } catch (Exception e) { } if (opcode == -1 || idx == -1) { return; } switch (opcode) { case 0: //getHello break; case 1: //requestShopInfo { sb.Append("1<>"); for (int i = 0; i < shops.Count; i++) { Write packet = new Write(1); packet.writeLine(shops[i].getId().ToString()); packet.writeLine(shops[i].getName().ToString()); packet.writeLine(shops[i].getNumber().ToString()); packet.writeLine(shops[i].getNew().ToString()); packet.writeLine(shops[i].getOld().ToString()); packet.writeLine(shops[i].getCategory().ToString()); packet.writeLine(shops[i].getImage().ToString()); packet.writeLine(shops[i].getStar().ToString()); packet.writeLine(shops[i].getTax().ToString()); packet.writeLine(shops[i].getCompany().ToString()); packet.writeLine(shops[i].getOwner().ToString()); sb.Append(packet.getPacket(true)); packet = null; } sb.Append("<EOF>"); Send(sb.ToString(), idx); sb.Clear(); System.Threading.Thread.Sleep(250); sb.Append("2<>"); for (int i = 0; i < shops.Count; i++) { for (int j = 0; j < shops[i].getItems().Count; j++) { Write packet = new Write(2); ShopItem temp = shops[i].getItems()[j]; packet.writeLine(i.ToString()); packet.writeLine(temp.getShopId().ToString()); packet.writeLine(temp.getName().ToString()); packet.writeLine(temp.getImage().ToString()); packet.writeLine(temp.getPrice().ToString()); packet.writeLine(temp.getCategory().ToString()); sb.Append(packet.getPacket(true)); packet = null; } } sb.Append("<EOF>"); Send(sb.ToString(), idx); sb.Clear(); System.Threading.Thread.Sleep(250); sb.Append("3<>"); for (int i = 0; i < shops.Count; i++) { for (int j = 0; j < shops[i].getReviews().Count; j++) { Write packet = new Write(3); Review temp = shops[i].getReviews()[j]; packet.writeLine(i.ToString()); packet.writeLine(temp.getShopId().ToString()); packet.writeLine(temp.getNickName().ToString()); packet.writeLine(temp.getComment().ToString()); packet.writeLine(temp.getScore().ToString()); sb.Append(packet.getPacket(true)); packet = null; } } sb.Append("<EOF>"); Send(sb.ToString(), idx); sb.Clear(); System.Threading.Thread.Sleep(250); } break; case 3: { int id = Int32.Parse(recv[2]); string nickname = recv[3]; int score = Int32.Parse(recv[4]); string comment = recv[5]; foreach (var shop in shops) { if (shop.getId() == id) { shop.addReview(new Review(nickname, comment, score, id)); } } ShopFactory.saveReview(con, nickname, comment, id, score); } break; } opcode = -1; idx = -1; }