Beispiel #1
0
        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;
        }
Beispiel #2
0
        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;
            }
        }