Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        public static string ToLowerString(this OfferType offerType)
        {
            string output = offerType.ToString();

            output = output.Replace('_', '-');
            output = output.ToLower();

            return(output);
        }
Exemplo n.º 3
0
 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");
     }
 }
Exemplo n.º 4
0
        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");
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取会员所有的产品
        /// <para>
        /// 需要授权
        /// </para>
        /// <para>
        /// 接口地址:http://open.1688.com/doc/api/cn/api.htm?ns=cn.alibaba.open&amp;n=offer.getAllOfferList&amp;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);
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        /*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);
        }