public string GenerateCodes(int quantity, OfferType type) { message.SetField("protocol", "XCP"); message.SetField("action", "GENERATE_CODES"); message.SetField("object", "OFFERS"); message.AddAttributes(new[] { new DataItem("quantity", quantity.ToString()), new DataItem("offer", type.ToString()) }); var postdata = Serialize(message); SendRequest(postdata); var respmsg = responseObject as MessageEnvelope; if (respmsg == null || !respmsg.IsSuccess()) { LogResponseMessage(); return(null); } return(respmsg.GetAttribute("code")); }
public static string ToLowerString(this OfferType offerType) { string output = offerType.ToString(); output = output.Replace('_', '-'); output = output.ToLower(); return(output); }
public static IOffer CreateOffer(OfferType type) { switch (type) { case OfferType.Rent: return new RentOffer(); case OfferType.Sale: return new SaleOffer(); default: throw new ArgumentOutOfRangeException(type.ToString(), "OfferType not supported"); } }
public static IOffer CreateOffer(OfferType type) { string offer = type.ToString(); switch (offer) { case "Sale": return(new SaleOffer(type)); case "Rent": return(new RentOffer(type)); default: throw new ArgumentException("Ivalid offer type"); } }
/// <summary> /// 获取会员所有的产品 /// <para> /// 需要授权 /// </para> /// <para> /// 接口地址:http://open.1688.com/doc/api/cn/api.htm?ns=cn.alibaba.open&n=offer.getAllOfferList&v=1 /// </para> /// </summary> /// <param name="type">商品所属类型,目前只支持SALE</param> /// <param name="categoryId">商品发布类目ID</param> /// <param name="groupIds">卖家自定义的商品分类ID,多个之间用“,”分隔</param> /// <param name="page">页码。取值范围:大于零的整数;默认值为1,即返回第一页数据。</param> /// <param name="pageSize">返回offer列表结果集分页条数。取值范围:大于零的整数;最大值:50。</param> /// <param name="timeStamp">格式:yyyy-MM-dd HH:mm:ss;1、如果传了时间戳参数,则按增量返回,即返回按指定获取条件且对应商品信息的最近更新时间(GMTModified)晚于该时间戳的商品列表信息。2、如果没有传时间戳参数,则取所有的满足条件的商品信息;</param> /// <param name="orderBy">当前支持:gmtexpire:asc|desc,gmt_modified:asc|desc</param> /// <param name="site">站点</param> /// <param name="returnFields">自定义返回字段,字段为offerDetailInfo子集。多个字段以半角','分隔。若此字段为空,则返回offer数组信息为空;其中如下参数无法通过该API获得:amountOnSale、details、detailsUrl、saledCount、skuArray、termOfferProcess、tradingType</param> /// <returns>产品分页信息</returns> public IPagedList<OfferDetailInfo> GetAllOffers(OfferType type = OfferType.SALE, long categoryId = default(long), long[] groupIds = null, int page = 1, int pageSize = 20, DateTime timeStamp = default(DateTime), string orderBy = "", string site = "china", string returnFields = "offerId,privateProperties,subject,details,imageList,productFeatureList,unit,amountOnSale,saledCount,priceRanges") { string url = "http://gw.open.1688.com/openapi/param2/1/cn.alibaba.open/offer.getAllOfferList/{0}".FormatStr(_context.Config.AppKey); var otherParas = _context.GetParas(); otherParas.Add("page", page + ""); otherParas.Add("pageSize", pageSize + ""); otherParas.Add("type", type.ToString()); if (categoryId != default(long)) { otherParas.Add("categoryId", categoryId + ""); } if (groupIds != null) { otherParas.Add("groupIds", groupIds + ""); } if (orderBy != "") { otherParas.Add("orderBy", orderBy); } if (timeStamp != default(DateTime)) { otherParas.Add("timeStamp", timeStamp.ToString("yyyy-MM-dd HH:mm:ss")); } if (returnFields.IsNotNullOrEmpty()) { otherParas.Add("returnFields", returnFields); } if (site.IsNotNullOrEmpty()) { otherParas.Add("site", site); } _context.Util.AddAliApiUrlSignPara(url, otherParas); var results = _context.Util.Send<AliResult<AliResultList<OfferDetailInfo>>>(url, otherParas); if (results.Result.Total > 0) { return new PagedList<OfferDetailInfo>(results.Result.ToReturn, page, pageSize, results.Result.Total); } return new PagedList<OfferDetailInfo>(new List<OfferDetailInfo>(), page, pageSize); }
public void OfferItem(Client sender, int id, OfferType type, decimal safeMoneyCount, int index = -1) { if (id.Equals(sender.GetAccountEntity().ServerId)) { sender.SendError("Nie możesz oferować przedmiotu samemu sobie."); return; } Offer offer = null; if (NAPI.Player.GetPlayersInRadiusOfPlayer(6f, sender).Any(x => x.GetAccountEntity().ServerId == id)) { CharacterEntity senderCharacter = sender.GetAccountEntity().CharacterEntity; CharacterEntity getterCharacter = NAPI.Player.GetPlayersInRadiusOfPlayer(6f, sender) .Find(x => x.GetAccountEntity().ServerId == id).GetAccountEntity().CharacterEntity; if (type == OfferType.Item && index != -1) { List <ItemModel> items = sender.GetAccountEntity().CharacterEntity.DbModel.Items.ToList(); //Tutaj sprawdzamy czy gracz posiada taki numer na liście. Numerujemy od 0 więc items.Count - 1 if (index > items.Count - 1 || index < 0) { sender.SendError("Nie posiadasz przedmiotu o takim indeksie."); return; } ItemModel item = items[index]; if (sender.GetAccountEntity().CharacterEntity.ItemsInUse.Any(i => i.Id == item.Id)) { sender.SendError("Nie możesz używać przedmiotu podczas oferowania."); return; } offer = new Offer(senderCharacter, getterCharacter, item, safeMoneyCount); } else if (type == OfferType.Vehicle) { VehicleEntity vehicle = EntityHelper.GetVehicle(sender.Vehicle); if (vehicle == null) { return; } offer = new Offer(senderCharacter, getterCharacter, vehicle.DbModel, safeMoneyCount); } else if (type == OfferType.Building) { if (sender.GetAccountEntity().CharacterEntity.CurrentBuilding != null || sender.HasData("CurrentDoors")) { BuildingEntity building = sender.HasData("CurrentDoors") ? sender.GetData("CurrentDoors") : sender.GetAccountEntity().CharacterEntity.CurrentBuilding; if (building.DbModel.Group != null) { sender.SendError("Nie można sprzedać budynku przepisanego pod grupę."); return; } if (building.DbModel.Character.Id != sender.GetAccountEntity().CharacterEntity.DbModel .Id) { sender.SendError("Nie jesteś właścicielem tego budynku."); return; } offer = new Offer(senderCharacter, getterCharacter, building.DbModel, safeMoneyCount); } else { sender.SendError("Aby oferować budynek musisz znajdować się w markerze bądź środku budynku"); } } if (offer != null) { getterCharacter.PendingOffer = offer; } } if (offer != null) { List <string> cefList = new List <string> { sender.Name, type.ToString(), offer.Money.ToString(CultureInfo.InvariantCulture) }; sender.SendInfo("Twoja oferta została wysłana."); offer.ShowWindow(cefList); } }
/*public Rules Rules { get; }*/ public override string ToString() { string s = ""; s += player_on_turn != -1? Board.ToString(player_on_turn) + Environment.NewLine : ""; s += GameType.ToString(); //if (GameType == GameType.Match) // s += " Length: " + match_to + " Stake: " + stake + " Score: " + Score(player_on_turn) + "-" + Score(1 - player_on_turn) + " Crawford: " + IsCrawford.ToString() + Environment.NewLine; //if (GameType == GameType.Money) // s += " Stake: " + stake + " Limit: " + limit + Environment.NewLine; s += " |Len {" + match_to + "} |Stakes {" + stake + "(" + limit + ")" + "} |Score {" + Score(player_on_turn) + "-" + Score(1 - player_on_turn) + "} |Crawford {" + IsCrawford.ToString() + "}" + Environment.NewLine; if (DiceRolled) { s += "D: " + Math.Max(dice[0], dice[1]) + "" + Math.Min(dice[0], dice[1]) + " "; } s += "C {" + cube.Value + "@" + cube.Owner + "} "; s += "On roll {" + player_on_roll + "} |Turn {" + player_on_turn + "} |Offer {" + offer.ToString() + "} |Can double {" + CanDouble().ToString() + "}" + " |Resign value {" + (int)resign_offer_value + "}" + Environment.NewLine; /* string s = player_on_turn != -1?Board.ToString(player_on_turn) + Environment.NewLine : ""; * s += "Cube: value " + cube.Value + " owner " + cube.Owner + Environment.NewLine; * s += "Dice: " + dice[0] + " " + dice[1] + Environment.NewLine; * s += "Player on roll: " + player_on_roll + Environment.NewLine; * s += "Player on turn: " + player_on_turn + Environment.NewLine; * s += "Offer: " + offer.ToString();*/ return(s); }