Ejemplo n.º 1
0
        public static string GetCriteoCustomerId(IResultResponse response)
        {
            var result = string.Empty;
            var match  = CriteoCustomerIdRegex.Match(response.RawData);

            if (match.Success)
            {
                result = match.Groups["customerId"].Value;
            }

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 推送克隆命令
        /// </summary>
        /// <param name="accessToken"></param>
        /// <returns></returns>
        public static IResultResponse PushCloneCommand(SysParameter para)
        {
            IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para);

            if (!resultResponse.Success)
            {
                return(resultResponse);
            }

            Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken;
            if (accessToken.UpConnectorId == 0)
            {
                return(ResultResponse.ExceptionResult("上下游关系没生效,请重新登录!"));
            }
            try
            {
                string key = accessToken.Id + "_" + accessToken.UpConnectorId;

                if (!IsSendCmd(key))
                {
                    return(ResultResponse.ExceptionResult("三分钟之内发送次过多"));
                }
                //克隆权限
                var cloneAuthority = new ProductRelationBusiness(para.dapperFactory).CloneAuthority(accessToken.Id, accessToken.UpConnectorId);
                if (!cloneAuthority)
                {
                    return(ResultResponse.ExceptionResult("你已经克隆过了!"));
                }
                long re = DistributePubSub.RedisPub("product_clone", new Dictionary <string, int>()
                {
                    { "upId", accessToken.UpConnectorId },
                    { "downId", accessToken.Id },
                });
                //bool sendCmd = WebSocketClient.SendCommand("Clone", "data.clone.push.command", new object[] { accessToken.Id, accessToken.UpConnectorId }, true);
                if (re == -1)
                {
                    return(ResultResponse.ExceptionResult("命令已发送失败!"));
                }

                //插入发送记录
                new CloneResultBusiness(para.dapperFactory).Insert(accessToken);

                //设置发送时间
                SetSendCmd(key);

                return(ResultResponse.GetSuccessResult("命令已发送成功,请稍后!"));
            }
            catch (Exception ex)
            {
                new Exceptions(ex, "clone");
                return(ResultResponse.ExceptionResult(ex.Message));
            }
        }
Ejemplo n.º 3
0
        public IResponseBase Execute(IRequestParameter parameters)
        {
            var communicationRequest = BuildUrl();

            //4/23/2015, JAY: they added a new McAfee symbol which contained malformed html
            //CustomStreamReaderProcess removes the junk; commenting this out for now because they supposedly fixed it.
            //communicationRequest.OptionalStreamReaderProcess = ParsingHelper.CustomStreamReaderProcess;

            _response = Communicate(communicationRequest);
            var result = ProcessCart(_response, parameters);

            return(result);
        }
        public IResponseBase ProcessResponse(IResultResponse response, IRequestParameter parameters)
        {
            var result = new Response <CheckoutResponse>();

            result.resultset = _request.CheckoutResponse;

            try
            {
                //check data first for valid json
                if (!response.RawData.Contains("<"))
                {
                    var dto        = JsonConvert.DeserializeObject <SavedCardDTO>(response.RawData);
                    var cardInfo   = result.resultset.PaymentInfo.CardInfo;
                    var savedCards = result.resultset.SavedCards;

                    cardInfo.Id              = dto.MaskedNumber;
                    cardInfo.Type            = dto.Type;
                    cardInfo.NameOnCard      = dto.Holder;
                    cardInfo.Number          = dto.MaskedFourDigit;
                    cardInfo.ExpirationMonth = dto.ExpirationMonth;
                    cardInfo.ExpirationYear  = dto.ExpirationYear;
                    cardInfo.Cvv             = string.Empty;

                    savedCards.ForEach(card => card.IsSelected = card.Value == _request.CardId);

                    if (!_errors.Any())
                    {
                        var session = new PaylessSession(_core);

                        session.SetCheckout(result.resultset);
                    }
                }
                else
                {
                    //this call returns the home page when you call it after the session has timed out
                    //this solution sucks, but works for now.

                    //tell the front end to time out
                    _errors.Add(new SiteError()
                    {
                        Source = "SessionTimeout"
                    });
                }
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle("CheckoutUpdateCreditCardInfo.ProcessResponse", ErrorSeverity.FollowUp, ErrorType.BuildUrl));
            }

            return(result);
        }
Ejemplo n.º 5
0
        public BlogHomeResponse ParseBlogHome(IResultResponse response, IRequestParameter parameters)
        {
            var result = new BlogHomeResponse
            {
                FeaturedPost     = GetFeaturedPost(response.XDocument),
                RecentPosts      = GetHomeRecentPosts(response.XDocument),
                LatestTweets     = GetLatestTweets(response.XDocument),
                TrendAlert       = GetTrendAlert(response.XDocument),
                YouTubePlaylist  = GetYouTubePlaylist(response.XDocument),
                FacebookPostHref = GetFacebookPostHref(response.XDocument)
            };

            return(result);
        }
Ejemplo n.º 6
0
        public BlogPostList ParseBlogPostList(IResultResponse response, IRequestParameter parameters)
        {
            var result  = new BlogPostList();
            var request = (BlogListRequest)parameters;

            result.RequestedArchive = request.Archive;
            result.RequestedTag     = request.Tag;
            result.Title            = GetTitle(response.XDocument);
            result.Tags             = GetPostTags(response.XDocument);
            result.Archives         = GetArchives(response.XDocument);
            result.Posts            = GetPostList(response.XDocument);
            result.MoreAvailable    = GetMoreAvailable(response.XDocument);
            return(result);
        }
Ejemplo n.º 7
0
        public IResponseBase ParseLogin(IResultResponse response, IRequestParameter parameters)
        {
            Response <LoginFormResponse> result = new Response <LoginFormResponse>();

            try
            {
                var form = _xDoc.Descendants(_ns + "form")
                           .WhereAttributeEquals("id", "dwfrm_login")
                           .FirstOrNewXElement();

                var action = form.AttributeValue("action");

                var dwSecureKey = form.Descendants(_ns + "input")
                                  .WhereAttributeEquals("name", "dwfrm_login_securekey")
                                  .FirstOrNewXElement()
                                  .AttributeValue("value");

                var dwLoginParam = form.Descendants(_ns + "input")
                                   .WhereAttributeContains("id", "dwfrm_login_username_")
                                   .FirstOrNewXElement()
                                   .AttributeValue("id");

                if (!string.IsNullOrEmpty(action) && !string.IsNullOrEmpty(dwSecureKey))
                {
                    result.resultset.Action       = action;
                    result.resultset.DWSecureKey  = dwSecureKey;
                    result.resultset.DWLoginParam = dwLoginParam;
                }
                else
                {
                    _errors.Add(new SiteError
                    {
                        Message  = new ErrorMessage(Config.Constants.GenericError, Config.Constants.GenericError),
                        Severity = ErrorSeverity.FollowUp,
                        Type     = ErrorType.Unclassifiable
                    });
                }
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle(
                                "MadServ.AccountService.ParseAccountOrderDetail",
                                ErrorSeverity.FollowUp,
                                ErrorType.Parsing
                                ));
            }

            return(result);
        }
Ejemplo n.º 8
0
        public IResponseBase ProcessResponse(IResultResponse response, IRequestParameter parameters)
        {
            var result = new Response <BoolResponse>();

            try
            {
                var xDoc = response.XDocument;
                var ns   = xDoc.Root.GetDefaultNamespace();

                result.resultset.Model = xDoc.Descendants("h1")
                                         .FirstOrNewXElement()
                                         .ElementValue()
                                         .ToLowerInvariant()
                                         .Contains("reset your password received");

                if (!result.resultset.Model)
                {
                    var error = xDoc.Descendants(ns + "div")
                                .WhereAttributeEquals("class", "error-form")
                                .FirstOrNewXElement()
                                .ElementValue();

                    if (!string.IsNullOrEmpty(error))
                    {
                        _errors.Add(new SiteError
                        {
                            Message  = new ErrorMessage(error, error),
                            Severity = ErrorSeverity.UserActionRequired,
                            Type     = ErrorType.UserActionRequired
                        });
                    }
                    else
                    {
                        _errors.Add(new SiteError
                        {
                            Message  = new ErrorMessage(Config.Constants.GenericError, Config.Constants.GenericError),
                            Severity = ErrorSeverity.FollowUp,
                            Type     = ErrorType.Unclassifiable
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle("ForgotPassword.ProcessResponse", ErrorSeverity.FollowUp, ErrorType.Parsing));
            }

            return(result);
        }
Ejemplo n.º 9
0
        public IResponseBase ParseCartMini(IResultResponse response, IRequestParameter parameters)
        {
            Response <CartResponse> result = new Response <CartResponse>();

            try
            {
                var cartItemCount = 0;
                var items         = _xDoc.Descendants(_ns + "div")
                                    .WhereAttributeEquals("class", "mini-cart-product")
                                    .Select(x =>
                {
                    var name = x.Elements(_ns + "div")
                               .WhereAttributeEquals("class", "mini-cart-name")
                               .FirstOrNewXElement()
                               .ElementValue();

                    var qtyStr = x.Elements(_ns + "div")
                                 .WhereAttributeEquals("class", "mini-cart-pricing")
                                 .FirstOrNewXElement()
                                 .Elements(_ns + "span")
                                 .WhereAttributeEquals("class", "value")
                                 .FirstOrNewXElement()
                                 .ElementValue();
                    var qty = 0;
                    Int32.TryParse(qtyStr, out qty);
                    cartItemCount += qty;

                    return(new CartItem
                    {
                        Name = name,
                        Quantity = qty
                    });
                })
                                    .ToList();

                result.resultset.Cart.CartItems     = items;
                result.resultset.Cart.CartItemCount = cartItemCount;
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle(
                                "MadServ.CartService.ParseCartMini",
                                ErrorSeverity.FollowUp,
                                ErrorType.Parsing
                                ));
            }

            return(result);
        }
Ejemplo n.º 10
0
        public IResponseBase Process(IResultResponse xResponse, IRequestParameter parameters, List <SiteError> errors)
        {
            _errors = errors;
            _xDoc   = xResponse.XDocument;
            if (_xDoc != null)
            {
                _ns = _xDoc.Root.GetDefaultNamespace();
            }

            var result = xResponse.Template.Method(xResponse, parameters);

            _errors.AddRange(ParseGeneralErrors());

            return(result);
        }
Ejemplo n.º 11
0
        public IResponseBase ParseFindMyPerfectShoe(IResultResponse xResponse, IRequestParameter parameters)
        {
            var result = new Response <FindMyShoeResponse>();

            result.resultset.Items = _xDoc.Descendants(_ns + "a")
                                     .Select(a => {
                return(new ShoeBoxMenu
                {
                    Href = a.AttributeValue("href"),
                    Name = a.Value.Trim()
                });
            }).ToList();

            return(result);
        }
Ejemplo n.º 12
0
Archivo: Order.cs Proyecto: tynr426/ict
        /// <summary>
        /// 订单确认中转
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public static IResultResponse OrderReceive(SysParameter para)
        {
            IResultResponse result     = null;
            int             sellerId   = para.ToInt("FKId");
            int             dbId       = para.ToInt("DBId");
            int             orderId    = para.ToInt("OrderId");
            string          oddNumber  = para.ToValue("OddNumber");
            int             dispatchId = para.ToInt("DispatchId");

            try
            {
                RelationMappingEntity relationMappingEntity = new ProductRelationBusiness(para.dapperFactory).GetUpMappingEntity(sellerId, dbId);
                if (relationMappingEntity.GoodsMapping.Count == 0)
                {
                    return(ResultResponse.ExceptionResult("没有找到商品映射关系"));
                }

                RelationMappingEntity orderMappingEntity = new OrderRelationBusiness(para.dapperFactory).GetUpOrder(sellerId, dbId, orderId);
                int replaceDispatchId = 0;
                if (dispatchId != 0)
                {
                    if (!orderMappingEntity.DispatchMapping.ContainsKey(dispatchId))
                    {
                        return(ResultResponse.GetSuccessResult("没有找到发货单id"));
                    }
                    replaceDispatchId = orderMappingEntity.DispatchMapping[dispatchId];
                }
                //发送
                result = ApiRequest.GetResponse(relationMappingEntity.ConnectorEntity.Domain, "order.dropshippingreceive.submit", new Dictionary <string, string>()
                {
                    { "DispatchId", replaceDispatchId.ToString() },
                    { "OddNumber", orderMappingEntity.OrderOddNumberMapping[oddNumber] },
                    { "OrderId", orderMappingEntity.OrderMapping[orderId].ToString() }
                });
                if (result.Success)
                {
                    return(ResultResponse.GetSuccessResult(dispatchId));
                }
                else
                {
                    return(result);
                }
            }
            catch (Exception ex)
            {
                return(ResultResponse.ExceptionResult(ex));
            }
        }
Ejemplo n.º 13
0
        public IResponseBase ProcessCart(IResultResponse response, IRequestParameter parameters)
        {
            var result = new Response <BoolResponse>();

            if (response.ResponseHeaders.ContainsKey("ResponseUri") && response.ResponseHeaders["ResponseUri"].EndsWith("/account"))
            {
                response.Template = new Template {
                    TemplateName = Config.TemplateEnum.Logout
                };
                result.resultset.Model = true;

                (new PaylessSession(_core)).RemoveCheckout();
            }

            return(result);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 入驻
        /// </summary>
        /// <param name="dic"></param>
        /// <returns></returns>
        public IResultResponse Join(Dictionary <string, object> dic)
        {
            if (dic == null)
            {
                return(ResultResponse.ExceptionResult("对像为空"));
            }
            ConnectorEntity entity = new ConnectorEntity();

            entity.SetValues(dic);
            entity.Status  = 1;
            entity.AddTime = DateTime.Now;
            GroupEntity groupEntity = new GroupEntity();

            groupEntity.SetValues(dic);
            groupEntity.Status  = 1;
            groupEntity.AddTime = DateTime.Now;
            IResultResponse resultResponse = null;

            using (IDTService dbHandler = DbAccess.DtService)
            {
                try
                {
                    dbHandler.BeginTransaction();
                    //保存主表
                    int id = Utils.ToInt(dbHandler.ExecuteScalar(DbProvider.InsertCommandText(groupEntity, GroupBusiness._TableName)));

                    if (id == 0)
                    {
                        throw new Exception("操作失败");
                    }

                    entity.GroupId = id;

                    dbHandler.ExecuteScalar(DbProvider.InsertCommandText(entity, TableName));

                    dbHandler.CommitTransaction();
                    resultResponse = ResultResponse.GetSuccessResult(1);
                }
                catch (Exception ex)
                {
                    dbHandler.RollbackTransaction();
                    resultResponse = ResultResponse.ExceptionResult(ex.Message);
                }
            }
            return(resultResponse);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 清除克隆数据
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public static IResultResponse ClearCloneData(SysParameter para)
        {
            IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para);

            if (!resultResponse.Success)
            {
                return(resultResponse);
            }

            Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken;
            string          key         = accessToken.Id + "_" + accessToken.UpConnectorId;

            try
            {
                DataTable dt = new CloneResultBusiness(para.dapperFactory).GetCloneData(accessToken);
                if (dt == null || dt.Rows.Count == 0)
                {
                    return(ResultResponse.ExceptionResult("没有数据可清理"));
                }
                //清缓存
                ClearCmd(key);
                string domain  = accessToken.Domain;
                string content = Utils.ToString(dt.Rows[0]["CloneResult"]);
                resultResponse = ApiRequest.GetResponse(domain, "mall.data.clone.clear", new Dictionary <string, string>()
                {
                    { "FKId", accessToken.SellerId.ToString() },
                    { "FKFlag", "2" },
                    { "Content", HttpUtility.UrlEncode(content) }
                });

                if (resultResponse.Success)
                {
                    //删除连接器中
                    new ProductRelationBusiness(para.dapperFactory).DeleteData(accessToken.Id, accessToken.UpConnectorId);

                    return(ResultResponse.GetSuccessResult("删除成功"));
                }
                return(ResultResponse.ExceptionResult("删除失败"));
            }
            catch (Exception ex)
            {
                new Exceptions(ex, "clone");
                return(ResultResponse.ExceptionResult(ex.Message));
            }
        }
Ejemplo n.º 16
0
        public IResponseBase Execute(IRequestParameter parameters)
        {
            var result = new Response <CharacterPageResponse>();

            try
            {
                var communicationRequest = BuildUrl(parameters);
                _response       = Communicate(communicationRequest);
                result          = ParseResponse(_response, parameters);
                result.template = "character";
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle("CharacterPage.Execute", ErrorSeverity.FollowUp, ErrorType.RequestError));
            }

            return(result);
        }
Ejemplo n.º 17
0
        public Response <PromosResponse> ParseResponse(IResultResponse response)
        {
            var result = new Response <PromosResponse>();

            result.resultset.Image.Title = promoName;
            XDocument  xDoc = response.XDocument;
            XNamespace ns   = xDoc.Root.GetDefaultNamespace();

            var container = xDoc.Descendants(ns + "div")
                            .WhereAttributeEquals("class", "coupon-container");

            var link  = container.Descendants(ns + "a").FirstOrNewXElement();
            var image = container.Descendants(ns + "img").FirstOrNewXElement();

            result.resultset.TargetUrl = link.AttributeValue("href").Replace("https://m.payless.com", "");
            result.resultset.Image.Src = image.AttributeValue("src");

            return(result);
        }
Ejemplo n.º 18
0
        public BlogPost ParseBlogPost(IResultResponse response, IRequestParameter parameters)
        {
            var result  = new BlogPost();
            var request = (BlogPostRequest)parameters;

            result.Title = response.XDocument.FirstDescendantByClass("h2", "post-title").Value.Trim();
            var dateAuthor = response.XDocument.FirstDescendantByClass("h3", "post-date").Value.Split('|');

            result.Date           = dateAuthor[0];
            result.Author         = dateAuthor[1].Replace(" BY ", "").Trim();
            result.AboutTheAuthor = GetAboutTheAuthor(response.XDocument);
            result.Body           = GetPostBody(response.XDocument);
            result.Image          = GetPostImage(response.XDocument);
            result.Href           = string.Format(Config.Urls.BlogPost, request.ID);
            result.Tags           = GetPostTags(response.XDocument);
            result.RecentPosts    = GetRecentPosts(response.XDocument);
            result.Archives       = GetArchives(response.XDocument);
            return(result);
        }
Ejemplo n.º 19
0
        public IResponseBase Execute(IRequestParameter parameters)
        {
            var communicationRequest = BuildUrl(parameters);

            _response = Communicate(communicationRequest);
            var result = ProcessResponse(_response, parameters);

            if (!_errors.Any())
            {
                var checkoutUpdateSummaryRequest = new CheckoutUpdateSummaryRequest
                {
                    CheckoutResponse = ((Response <CheckoutResponse>)result).resultset
                };
                var checkoutUpdateSummary = new CheckoutUpdateSummary(_core, _errors);
                result = checkoutUpdateSummary.Execute(checkoutUpdateSummaryRequest);
            }

            return(result);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 克隆权限
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public static IResultResponse CloneAuthority(SysParameter para)
        {
            IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para);

            if (!resultResponse.Success)
            {
                return(resultResponse);
            }

            Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken;

            try
            {
                var       cloneAuthority = new ProductRelationBusiness(para.dapperFactory).CloneAuthority(accessToken.Id, accessToken.UpConnectorId);
                DataTable dt             = new CloneResultBusiness(para.dapperFactory).GetCloneData(accessToken);
                if (dt == null || dt.Rows.Count == 0)
                {
                    return(ResultResponse.GetSuccessResult(1));
                }
                int status = Utils.ToInt(dt.Rows[0]["Status"]);
                if (cloneAuthority)
                {
                    return(ResultResponse.GetSuccessResult(1));
                }
                else
                {
                    if (status == -1)
                    {
                        return(ResultResponse.ExceptionResult("清除克隆失败数据"));
                    }
                    else
                    {
                        return(ResultResponse.ExceptionResult("清除克隆成功数据"));
                    }
                }
            }
            catch (Exception ex)
            {
                new Exceptions(ex, "clone");
                return(ResultResponse.ExceptionResult(ex.Message));
            }
        }
Ejemplo n.º 21
0
        private static List <Price> Parse(IResultResponse response)
        {
            var result  = new List <Price>();
            var pricing = JsonConvert.DeserializeObject <dynamic>(response.RawData);

            if (pricing == null || pricing.prices == null)
            {
                return(result);
            }
            if (decimal.Parse(pricing.prices.sale.ToString()) == 0)
            {
                var range      = pricing.prices.rangePrice.ToString().Split('-');
                var low        = range[0].Trim();
                var high       = range[1].Trim();
                var priceToAdd = new Price(low)
                {
                    Label = "range"
                };
                var highPrice = new Price(high);
                priceToAdd.Label = highPrice.Formatted;
                result.Add(priceToAdd);
            }
            else
            {
                var sale = new Price(pricing.prices.sale.ToString())
                {
                    Label = "sale"
                };
                result.Add(sale);
                if (pricing.prices.standard == pricing.prices.sale)
                {
                    return(result);
                }
                var reg = new Price(pricing.prices.standard.ToString())
                {
                    Label = "reg"
                };
                result.Add(reg);
            }

            return(result);
        }
Ejemplo n.º 22
0
        //public static Dictionary<string, object> GetRemoteDictionary(string path, Dictionary<string, object> dic, out string msg)
        //{
        //    string json = ApiRequest.GetRemoteContent(path, dic, out msg);
        //    if (!json.IsNullOrEmpty())
        //    {
        //        object x = JSON.JsonTObject(json);
        //        Dictionary<string, object> dicx = x as Dictionary<string, object>;
        //    }

        //    return null;
        //}

        /// <summary>
        /// 解析返回数据
        /// </summary>
        /// <param name="content"></param>
        /// <returns></returns>
        public static IResultResponse ParseResponseData(string content)
        {
            IResultResponse result = null;

            var dic = JSON.Json2Dictionary(content);

            if (!dic.ContainsKey("Success"))
            {
                return(ResultResponse.ExceptionResult("不是有效对象"));
            }
            string message = dic["Message"].ToString();
            int    code    = Utils.ToInt(dic["Code"]);

            if (Utils.ToBool(dic["Success"]))
            {
                string name = dic["Content"].GetType().Name;

                if (dic["Content"] == null)
                {
                    result = ResultResponse.GetSuccessResult("", message);
                }

                else if (name == "Object[]")
                {
                    result = ResultResponse.GetSuccessResult(ConvertToDataTable(dic["Content"] as object[]), message);
                }

                else if (name == "Dictionary`2")
                {
                    result = ResultResponse.GetSuccessResult(ConvertToDictionary(dic["Content"]), message);
                }
                else
                {
                    result = ResultResponse.GetSuccessResult(dic["Content"].ToString(), message);
                }
            }
            else
            {
                result = ResultResponse.ExceptionResult(message, null, code);
            }
            return(result);
        }
Ejemplo n.º 23
0
        public IResponseBase ParseAccountOrderHistory(IResultResponse response, IRequestParameter parameters)
        {
            Response <AccountOrderHistoryResponse> result = new Response <AccountOrderHistoryResponse>();

            try
            {
                var mainContainer = _xDoc.Descendants(_ns + "div")
                                    .WhereAttributeEquals("id", "primary")
                                    .FirstOrNewXElement();

                // Parse History Items
                var items = mainContainer.Descendants(_ns + "ul")
                            .WhereAttributeEquals("class", "search-result-items")
                            .FirstOrNewXElement()
                            .Elements(_ns + "li")
                            .Select(x =>
                {
                    var date = GetDivsValueSpan("order-date", x);

                    var status = GetDivsValueSpan("order-status", x);

                    ///what the f**k is this?
                    return(new AccountOrderHistoryItem
                    {
                    });
                })
                            .ToList();


                // Populate Result
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle(
                                "MadServ.AccountService.ParseAccountOrderHistory",
                                ErrorSeverity.FollowUp,
                                ErrorType.Parsing
                                ));
            }

            return(result);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 获得下游列表
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public static IResultResponse GetDownList(SysParameter para)
        {
            IResultResponse resultResponse = OpsUtil.VerifyAccessToken(para);

            if (!resultResponse.Success)
            {
                return(resultResponse);
            }

            Sdk.AccessToken accessToken = resultResponse.Content as Sdk.AccessToken;
            try
            {
                DataTable dt = new ConnectorBusiness(para.dapperFactory).GetDownList(accessToken.Id);
                return(ResultResponse.GetSuccessResult(dt));
            }
            catch (Exception ex)
            {
                return(ResultResponse.ExceptionResult(ex, 500));
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 通过下游卖家mobile获取信息
        /// </summary>
        /// <param name="mobile">卖家mobile</param>
        /// <returns>大于0成功,否则失败</returns>
        /// <remarks>
        /// <list type="bullet">
        /// <item></item>
        /// </list>
        /// </remarks>
        public IResultResponse CheckDownConnector(string mobile, int upConnectorId)
        {
            //检查信息是否存在
            Dictionary <string, object> dic = new Dictionary <string, object>();

            dic.Add("Mobile", mobile);
            List <ConnectorEntity> entConnectors = DbAccess.GetEntity <List <ConnectorEntity> >(ConnectorBusiness._TableName, dic);

            if (entConnectors == null || entConnectors.Count == 0)
            {
                return(ResultResponse.ExceptionResult("您尚未成为连接器合作商"));
            }
            IResultResponse resultResponse = null;

            foreach (ConnectorEntity entConnector in entConnectors)
            {
                Dictionary <string, object> dic2 = new Dictionary <string, object>();
                dic2.Add("DownConnectorId", entConnector.Id);
                dic2.Add("Status", 1);
                RelationEntity relate = DbAccess.GetEntity <RelationEntity>(TableName, dic2);
                if (relate != null && relate.Id > 0)
                {
                    if (relate.UpConnectorId == upConnectorId)
                    {
                        resultResponse = ResultResponse.ExceptionResult("您已成为该合作商的下游合作商");
                    }
                    else
                    {
                        resultResponse = ResultResponse.ExceptionResult("您已拥有上游合作商,不能再添加");
                    }
                    continue;
                }
                GroupEntity group = (GroupEntity) new GroupBusiness(_dapperFactory).GetEntity("Id=" + entConnector.GroupId);
                Dictionary <string, object> result = new Dictionary <string, object>();
                result.Add("Id", entConnector.Id);
                result.Add("Domain", group.Domain);
                resultResponse = ResultResponse.GetSuccessResult(result.ToJson());
                break;
            }
            return(resultResponse);
        }
Ejemplo n.º 26
0
        public IResponseBase ProcessResponse(IResultResponse response, IRequestParameter parameters)
        {
            var result = new Response <ForgotPasswordFormResponse>();

            try
            {
                var xDoc = response.XDocument;
                var ns   = xDoc.Root.GetDefaultNamespace();

                var form = xDoc.Descendants(ns + "form")
                           .WhereAttributeEquals("id", "PasswordResetForm")
                           .FirstOrNewXElement();

                var action      = form.AttributeValue("action");
                var dwSecureKey = form.Descendants(ns + "input")
                                  .WhereAttributeEquals("name", "dwfrm_requestpassword_securekey")
                                  .FirstOrNewXElement()
                                  .AttributeValue("value");

                if (!string.IsNullOrEmpty(action) && !string.IsNullOrEmpty(dwSecureKey))
                {
                    result.resultset.Action      = action;
                    result.resultset.DWSecureKey = dwSecureKey;
                }
                else
                {
                    _errors.Add(new SiteError
                    {
                        Message  = new ErrorMessage(Config.Constants.GenericError, Config.Constants.GenericError),
                        Severity = ErrorSeverity.FollowUp,
                        Type     = ErrorType.Unclassifiable
                    });
                }
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle("ForgotPasswordForm.ProcessResponse", ErrorSeverity.FollowUp, ErrorType.Parsing));
            }

            return(result);
        }
Ejemplo n.º 27
0
        public IResponseBase Execute(IRequestParameter parameters)
        {
            var result = new Response <PromosResponse>();

            try
            {
                _request = (PromosRequest)parameters;
                if (_request != null && !string.IsNullOrEmpty(_request.PromoName) && Config.PromoLookup.ContainsKey(_request.PromoName))
                {
                    promoName = _request.PromoName;
                    var communicationRequest = BuildUrl(parameters);
                    _response = Communicate(communicationRequest);
                    result    = ParseResponse(_response);
                }
            }
            catch (Exception ex)
            {
                _errors.Add(ex.Handle("PromosRequest.Execute", ErrorSeverity.FollowUp, ErrorType.RequestError));
            }
            return(result);
        }
Ejemplo n.º 28
0
        public static List <string> GetProductMasterIds(IResultResponse response)
        {
            var result = new List <string>();

            var match = BasketRegex.Match(response.RawData);

            if (match.Success)
            {
                var script            = match.Groups["script"].Value;
                var productIdsMatches = BasketProductIdRegex.Matches(script);

                if (productIdsMatches != null)
                {
                    foreach (Match id in productIdsMatches)
                    {
                        result.Add(id.Groups["id"].Value);
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 29
0
        public IResponseBase Execute(IRequestParameter parameters)
        {
            IResponseBase result;
            var           orderLookupForm         = new OrderLookupForm(_core, _errors);
            var           orderLookupFormRequest  = new EmptyRequest();
            var           orderLookupFormResponse = (Response <StringResponse>)orderLookupForm.Execute(orderLookupFormRequest);

            if (!_errors.Any())
            {
                _request             = (OrderLookupRequest)parameters;
                _request.QueryString = orderLookupFormResponse.resultset.Model;

                var communicationRequest = BuildUrl(parameters);
                _response = Communicate(communicationRequest);
                result    = ProcessResponse(_response, parameters);
            }
            else
            {
                result = new Response <AccountOrderDetailResponse>();
            }
            return(result);
        }
Ejemplo n.º 30
0
        public IResponseBase Execute(IRequestParameter parameters)
        {
            IResponseBase result;
            var           ForgotPasswordForm         = new ForgotPasswordForm(_core, _errors);
            var           ForgotPasswordFormRequest  = new EmptyRequest();
            var           ForgotPasswordFormResponse = (Response <ForgotPasswordFormResponse>)ForgotPasswordForm.Execute(ForgotPasswordFormRequest);

            if (!_errors.Any())
            {
                _request      = (ForgotPasswordRequest)parameters;
                _request.Form = ForgotPasswordFormResponse.resultset;

                var communicationRequest = BuildUrl(parameters);
                _response = Communicate(communicationRequest);
                result    = ProcessResponse(_response, parameters);
            }
            else
            {
                result = new Response <AccountOrderDetailResponse>();
            }
            return(result);
        }