Exemple #1
0
        public async Task <bool> AreNewEggCredentialsValid(CancellationToken token, Mark mark = null)
        {
            if (mark == null)
            {
                mark = Mark.CreateNew();
            }

            int      pageIndex    = 1;
            DateTime startDateUtc = DateTime.UtcNow;
            DateTime endDateUtc   = startDateUtc.AddMinutes(1);

            var request = new GetOrderInfoRequest(
                new GetOrderInfoRequestBody(
                    pageIndex,
                    base.Config.OrdersPageSize,
                    new GetOrderInfoRequestCriteria()
            {
                Type          = 0,
                Status        = ( int )NewEggOrderStatusEnum.Unshipped,
                OrderDateFrom = Misc.ConvertFromUtcToPstStr(startDateUtc),
                OrderDateTo   = Misc.ConvertFromUtcToPstStr(endDateUtc)
            }));

            var ordersPageServerResponse = await base.PutAsync(new GetModifiedOrdersCommand( base.Config, base.Credentials, request.ToJson()), token, mark, (code, response) => false).ConfigureAwait(false);

            if (ordersPageServerResponse.Error == null)
            {
                return(true);
            }
            else
            {
                throw new NewEggException(ordersPageServerResponse.Error.Message);
            }
        }
Exemple #2
0
        private async Task <IEnumerable <NewEggOrder> > GetModifiedOrdersByStatusAsync(DateTime startDateUtc, DateTime endDateUtc, string countryCode, NewEggOrderStatusEnum orderStatus, CancellationToken token, Mark mark = null)
        {
            var orders = new List <NewEggOrder>();

            if (mark == null)
            {
                mark = Mark.CreateNew();
            }

            int pageIndex = 1;

            while (true)
            {
                var request = new GetOrderInfoRequest(
                    new GetOrderInfoRequestBody(
                        pageIndex,
                        base.Config.OrdersPageSize,
                        new GetOrderInfoRequestCriteria()
                {
                    Type          = 0,
                    Status        = (int)orderStatus,
                    OrderDateFrom = Misc.ConvertFromUtcToPstStr(startDateUtc),
                    OrderDateTo   = Misc.ConvertFromUtcToPstStr(endDateUtc),
                    CountryCode   = countryCode,
                }));

                var ordersPageServerResponse = await base.PutAsync(new GetModifiedOrdersCommand( base.Config, base.Credentials, request.ToJson()), token, mark, (code, response) => false).ConfigureAwait(false);

                if (ordersPageServerResponse.Error == null)
                {
                    var ordersPage = JsonConvert.DeserializeObject <GetOrderInfoResponse>(ordersPageServerResponse.Result);

                    if (ordersPage.IsSuccess)
                    {
                        if (ordersPage.ResponseBody.OrderInfoList != null)
                        {
                            orders.AddRange(ordersPage.ResponseBody.OrderInfoList.Select(o => o.ToSVOrder()));
                            ++pageIndex;
                        }

                        if (ordersPage.ResponseBody.PageInfo.TotalPageCount <= pageIndex)
                        {
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                }
                else
                {
                    throw new NewEggException(ordersPageServerResponse.Error.Message);
                }
            }

            return(orders.ToArray());
        }
Exemple #3
0
        public async Task <GetOrderInfoResponse> GetOrderInfo(GetOrderInfoRequest request)
        {
            var queryParameters = new Dictionary <string, string>();

            queryParameters.AddValueIfNotNullOrEmpty("signalProvider", _options.SignalProvider);
            queryParameters.AddValueIfNotNullOrEmpty("signalProviderKey", _options.SignalProviderKey);
            queryParameters.AddValueIfNotNullOrEmpty("extId", request.ExternalId);
            queryParameters.AddValueIfNotNullOrEmpty("orderId", request.OrderId);
            var queryString = queryParameters.ToQueryString();

            return(await this.GetAsync <GetOrderInfoResponse>($"v2/getOrderInfo{queryString}"));
        }
Exemple #4
0
        /// <summary>
        /// 获得订单信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ResultJsonModel <GetOrderInfoResponse> OrderInfo(GetOrderInfoRequest request)
        {
            ResultJsonModel <GetOrderInfoResponse> result = new ResultJsonModel <GetOrderInfoResponse>();
            Orders orders = CacheForModel_Order.Instance.GetOrdersByOrderId(request.OrderId);

            if (orders == null)
            {
                result.HttpCode = 300;
                result.Message  = Enum_Message.NoMoreDataMessage.Enum_GetString();
                return(result);
            }
            var userModel = CacheForModelUser.Instance.GetUserInfo(orders.CustomerId);

            if (userModel == null)
            {
                result.HttpCode = 300;
                result.Message  = Enum_Message.UserNotExitMessage.Enum_GetString();
                return(result);
            }
            var recipe = CacheForModelRecipe.Instance.GetRecipeListByRecipeId(orders.RecipeId.ParseInt().Value).FirstOrDefault();

            if (recipe == null)
            {
                result.HttpCode = 300;
                result.Message  = Enum_Message.NoMoreDataMessage.Enum_GetString();
                return(result);
            }
            var restaurant = CacheForModelRestaurant.Instance.GetRestaurantById(recipe.restaurantId.Value).FirstOrDefault();

            if (restaurant == null)
            {
                result.HttpCode = 300;
                result.Message  = Enum_Message.NoMoreDataMessage.Enum_GetString();
                return(result);
            }
            List <Food>           list_food            = CacheForModelFood.Instance.GetFoodList();
            List <FoodType>       list_food_type       = CacheForModelFoodType.Instance.GetFoodTypeList();
            List <Tag>            list_tag             = CacheForModelTag.Instance.GetTagList();
            List <Tag_Relation>   list_tag_relation    = CacheForModel_TagRelation.Instance.GetTagRelationList();
            List <CustomerLike>   list_customer_like   = CacheForModelCustomerLike.Instance.GetCustomLike(orders.CustomerId);
            List <Recipe_foods>   list_recipe_food     = CacheForModelRecipe_Foods.Instance.GetRecipe_FoodsListByRecipeId(orders.RecipeId.ParseInt().Value);
            List <DataDictionary> list_data_dictionary = CacheForModelDataDcitionarys.Instance.GetDataDictionaryList("餐厅类型");
            GetOrderInfoResponse  response             = new GetOrderInfoResponse(orders, recipe, restaurant, list_food, list_food_type, list_tag, list_customer_like, userModel, list_tag_relation, list_recipe_food, list_data_dictionary, request.CoordX, request.CoordY);

            result.HttpCode = 200;
            result.Message  = Enum_Message.SuccessMessage.Enum_GetString();
            result.Model1   = response;
            return(result);
        }
Exemple #5
0
        public async Task GetOrdersInfo_ReturnsOrderInfo()
        {
            // Arrange
            var options             = CreateOptions();
            var httpClient          = new HttpClient();
            var client              = new BotsOrderApi(options, httpClient);
            var getOrderInfoRequest = new GetOrderInfoRequest {
                OrderId = "bem-bot-5fdf0108e8f42a4ffc5fa0a1-1650101488-0001-3429175148"
            };

            // Act
            var order = await client.GetOrderInfo(getOrderInfoRequest);

            // Assert
            order.Should().NotBeNull();
            order.OrderId.Should().Be(getOrderInfoRequest.OrderId);
        }
Exemple #6
0
 public ResultJsonModel <GetOrderInfoResponse> OrderInfo(GetOrderInfoRequest request)
 {
     return(OrdersBiz.Instance.OrderInfo(request));
 }