private bool CookTheDish(CafeInfo cafe, CookingInfo cooking, int dishid) { int currentstep = 0; int totalsteps = 0; string content = ""; if (IsChefAvailable(cafe)) { HH.DelayedTime = Constants.DELAY_2SECONDS; content = HH.Get(string.Format("http://www.kaixin001.com/cafe/api_cooking.php?verify={0}&auto=1&cafeid={1}&orderid={2}&cafepp=2092500&dishid={3}&flashid={4}&rand=0.6033724816516042", DataConvert.GetEncodeData(this._verifyCode), cafe.CafeId, cooking.OrderId, dishid, this._flashid)); if (GetCookFeedback(content, ref currentstep, ref totalsteps)) { cooking.Stage = 1; cafe.ChefMana--; return true; } } else { HH.DelayedTime = Constants.DELAY_2SECONDS; content = HH.Get(string.Format("http://www.kaixin001.com/cafe/api_cooking.php?verify={0}&cafeid={1}&orderid={2}&dishid={3}&rand=0.36006107507273555", DataConvert.GetEncodeData(this._verifyCode), cafe.CafeId, cooking.OrderId, dishid)); if (GetCookFeedback(content, ref currentstep, ref totalsteps)) { for (int ix = currentstep; ix < totalsteps; ix++) { SetMessage(string.Format("步骤{0}->", ix + 1)); HH.DelayedTime = Constants.DELAY_2SECONDS; content = HH.Get(string.Format("http://www.kaixin001.com/cafe/api_cooking.php?verify={0}&cafeid={1}&orderid={2}&dishid={3}&rand=0.36006107507273555", DataConvert.GetEncodeData(this._verifyCode), cafe.CafeId, cooking.OrderId, dishid)); int currentstep2 = 0; int totalsteps2 = 0; if (!GetCookFeedback(content, ref currentstep2, ref totalsteps2)) { cooking.Stage = 0; return true; } } cooking.Stage = 1; return true; } } if (content.Contains("你目前的级别不能烹饪这道菜") || content.Contains("兑换失败")) { if (dishid == 1) this._tomatoexchangable = false; if (dishid == 60) this._medlarexchangable = false; if (dishid == 61) this._crabexchangable = false; if (dishid == 15) this._pineappleexchangable = false; } return false; }
public static CafeInfo GetCafe(string strxml) { try { if (String.IsNullOrEmpty(strxml)) return null; XmlDocument objXmlDoc = new XmlDocument(); objXmlDoc.LoadXml(strxml); if (objXmlDoc == null) return null; CafeInfo cafe = new CafeInfo(); //cafe XmlNode objNode = objXmlDoc.SelectSingleNode("data/account"); if (objNode == null) return null; cafe.Grade = DataConvert.GetInt32(objNode.SelectSingleNode("grade/item/grade").InnerText); cafe.GradeLabel = objNode.SelectSingleNode("grade/item/label").InnerText; cafe.Name = objNode.SelectSingleNode("real_name").InnerText; cafe.Cash = DataConvert.GetInt64(objNode.SelectSingleNode("cash").InnerText); cafe.GoldNum = DataConvert.GetInt32(objNode.SelectSingleNode("goldnum").InnerText); cafe.Evalue = DataConvert.GetInt32(objNode.SelectSingleNode("evalue").InnerText); objNode = objXmlDoc.SelectSingleNode("data/cafe"); if (objNode == null) return null; cafe.CafeName = objNode.SelectSingleNode("cafename").InnerText; cafe.CafeId = DataConvert.GetInt32(objNode.SelectSingleNode("cafeid").InnerText); //cooking DataView dv = GetData(objXmlDoc, "data/cooking"); Collection<CookingInfo> cookings = new Collection<CookingInfo>(); for (int ix = 0; ix < dv.Table.Rows.Count; ix++) { try { CookingInfo cooking = new CookingInfo(); cooking.OrderId = DataConvert.GetInt32(dv.Table.Rows[ix]["orderid"]); if (dv.Table.Columns.Contains("stage")) cooking.Stage = DataConvert.GetInt32(dv.Table.Rows[ix]["stage"]); else cooking.Stage = -98; if (dv.Table.Columns.Contains("stage") && cooking.Stage != -1) { cooking.DishId = DataConvert.GetInt32(dv.Table.Rows[ix]["dishid"]); cooking.Name = DataConvert.GetString(dv.Table.Rows[ix]["name"]); cooking.FoodNum = DataConvert.GetInt32(dv.Table.Rows[ix]["foodnum"]); cooking.Step = DataConvert.GetInt32(dv.Table.Rows[ix]["step"]); cooking.Resver = DataConvert.GetInt32(dv.Table.Rows[ix]["resver"]); } cookings.Add(cooking); } catch (Exception ex) { LogHelper.Write("ConfigCtrl.GetCafe(Get CookingInfo)", strxml, ex, LogSeverity.Warn); continue; } } cafe.Cookings = cookings; //Employees //dv = GetData(objXmlDoc, "data/employees"); //Collection<EmployeeInfo> employees = new Collection<EmployeeInfo>(); //for (int ix = 0; ix < dv.Table.Rows.Count; ix++) //{ // try // { // EmployeeInfo employee = new EmployeeInfo(); // employee.UId = DataConvert.GetInt32(dv.Table.Rows[ix]["uid"]); // employee.Name = DataConvert.GetString(dv.Table.Rows[ix]["real_name"]); // employees.Add(employee); // } // catch (Exception ex) // { // LogHelper.Write("ConfigCtrl.GetCafe(Get EmployeeInfo)", strxml, ex, LogSeverity.Error); // continue; // } //} //cafe.Employees = employees; XmlNodeList nodes = objXmlDoc.SelectNodes("data/employees/item"); Collection<FriendInfo> employees = new Collection<FriendInfo>(); foreach (XmlNode node in nodes) { try { FriendInfo employee = new FriendInfo(); employee.Id = DataConvert.GetInt32(node.SelectSingleNode("uid").InnerText); employee.Name = node.SelectSingleNode("real_name").InnerText; employees.Add(employee); } catch (Exception ex) { LogHelper.Write("ConfigCtrl.GetCafe(Get EmployeeInfo)", strxml, ex, LogSeverity.Error); continue; } } cafe.Employees = employees; //Foods dv = GetData(objXmlDoc, "data/dish"); Collection<DinnerTableInfo> dinnertables = new Collection<DinnerTableInfo>(); for (int ix = 0; ix < dv.Table.Rows.Count; ix++) { try { DinnerTableInfo dinnertable = new DinnerTableInfo(); dinnertable.OrderId = DataConvert.GetInt64(dv.Table.Rows[ix]["orderid"]); if (dv.Table.Columns.Contains("name")) dinnertable.Name = DataConvert.GetString(dv.Table.Rows[ix]["name"]); if (dv.Table.Columns.Contains("foodnum")) dinnertable.FoodNum = DataConvert.GetInt32(dv.Table.Rows[ix]["foodnum"]); if (dv.Table.Columns.Contains("dishid")) dinnertable.DishId = DataConvert.GetInt32(dv.Table.Rows[ix]["dishid"]); if (dv.Table.Columns.Contains("num")) dinnertable.Num = DataConvert.GetInt32(dv.Table.Rows[ix]["num"]); if (dv.Table.Columns.Contains("resver")) dinnertable.Resver = DataConvert.GetInt32(dv.Table.Rows[ix]["resver"]); dinnertables.Add(dinnertable); } catch (Exception ex) { LogHelper.Write("ConfigCtrl.GetCafe(Get DishInfo)", strxml, ex, LogSeverity.Warn); continue; } } cafe.DinnerTables = dinnertables; //equipments dv = GetData(objXmlDoc, "data/equipments"); if (dv.Table.Rows.Count > 0) { string tkey = ""; for (int ix = 0; ix < dv.Table.Rows.Count; ix++) { try { tkey = DataConvert.GetString(dv.Table.Rows[ix]["tkey"]); if (tkey == "autochef") cafe.Chef = true; } catch (Exception ex) { LogHelper.Write("ConfigCtrl.GetCafe(Get DishInfo)", strxml, ex, LogSeverity.Warn); continue; } } } return cafe; } catch (Exception ex) { LogHelper.Write("ConfigCtrl.GetCafe", strxml, ex, LogSeverity.Error); return null; } }