예제 #1
0
 /// <summary>
 /// 获取买家个人账户信息
 /// </summary>
 /// <returns></returns>
 public BuyerUserInfo GetBUInfo(BuyerUserInfo bus)
 {
     using (ShopEntities db = new ShopEntities())
     {
         return(db.BuyerUserInfo.SingleOrDefault(o => o.UserName.Equals(bus.UserName) && o.PassWord.Equals(bus.PassWord)));
     }
 }
예제 #2
0
        private UseCase_Login Prepare(BuyerUserInfo buyerUser, Action <BuyerUserInfo> setupMocks)
        {
            UseCase_Login useCase_Login = LoginAssure(buyerUser);

            setupMocks(buyerUser);
            IntasllMocks();
            return(useCase_Login);
        }
예제 #3
0
 /// <summary>
 /// 添加一个买家用户实体
 /// </summary>
 public bool BuyerUserInfoRegister(BuyerUserInfo bus)
 {
     using (ShopEntities db = new ShopEntities())
     {
         db.BuyerUserInfo.Add(bus);
         return(db.SaveChanges() > 0);
     }
 }
예제 #4
0
        private async Task Success_Normal(BuyerUserInfo buyerUser, IEnumerable <ProductInCart> expectedProductsCartHistory)
        {
            _ = Prepare(buyerUser, buyerUser =>
            {
                SetupMock_Delivery_Success(buyerUser);
                SetupMock_Payment_Success(buyerUser);
            });

            Assert.IsTrue(await MarketBridge.PurchaseShoppingCart(buyerUser));
            AssertHistory(new PurchaseHistoryRecord[]
            {
                new PurchaseHistoryRecord(expectedProductsCartHistory, TicketId_Delivery, true, TicketId_Payment, true),
            });
        }
예제 #5
0
 public UseCase_PurchaseCart
 (
     SystemContext systemContext,
     BuyerUserInfo buyerUser,
     BuyerUserInfo buyerUser2,
     BuyerUserInfo buyerUser_empty,
     BuyerUserInfo competitorUser,
     ShopImage shopImage
 ) : base(systemContext)
 {
     ShopImage       = shopImage;
     BuyerUser       = buyerUser;
     BuyerUser2      = buyerUser2;
     BuyerUser_Empty = buyerUser_empty;
     CompetitorUser  = competitorUser;
 }
예제 #6
0
 private ISetup <ExternalPaymentSystem, Task <string> > SetupMock_Payment(Mock <ExternalPaymentSystem> mock, BuyerUserInfo buyerUser)
 {
     return(mock.Setup(ps => ps.CreatePaymentAsync
                       (
                           It.Is <string>(x => x == buyerUser.CreditCard.CardNumber),
                           It.Is <string>(x => x == buyerUser.CreditCard.Month),
                           It.Is <string>(x => x == buyerUser.CreditCard.Year),
                           It.Is <string>(x => x == buyerUser.CreditCard.HolderName),
                           It.Is <string>(x => x == buyerUser.CreditCard.Cvv),
                           It.Is <string>(x => x == buyerUser.CreditCard.HolderId)
                       )));
 }
예제 #7
0
 private void SetupMock_Payment_Fails(BuyerUserInfo buyerUser)
 {
     Mock_Payment = new Mock <ExternalPaymentSystem>();
     _            = SetupMock_Payment(Mock_Payment, buyerUser).Returns(Task.FromResult("-1"));
 }
예제 #8
0
 private void SetupMock_Payment_Success(BuyerUserInfo buyerUser)
 {
     Mock_Payment     = new Mock <ExternalPaymentSystem>();
     TicketId_Payment = GenerateTicket();
     _ = SetupMock_Payment(Mock_Payment, buyerUser).Returns(Task.FromResult(TicketId_Payment));
 }
예제 #9
0
 private ISetup <ExternalDeliverySystem, Task <string> > SetupMock_Delivery(Mock <ExternalDeliverySystem> mock, BuyerUserInfo buyerUser)
 {
     return(mock.Setup(ds => ds.CreateDelivery
                       (
                           It.Is <string>(x => x == buyerUser.Username),
                           It.Is <string>(x => x == $"{buyerUser.Address.Street} {buyerUser.Address.ApartmentNum}"),
                           It.Is <string>(x => x == buyerUser.Address.City),
                           It.Is <string>(x => x == buyerUser.Address.State),
                           It.Is <string>(x => x == buyerUser.Address.ZipCode)
                       )));
 }
예제 #10
0
 private void SetupMock_Delivery_Fails(BuyerUserInfo buyerUser)
 {
     Mock_Delivery = new Mock <ExternalDeliverySystem>();
     _             = SetupMock_Delivery(Mock_Delivery, buyerUser).Returns(Task.FromResult("-1"));
 }
예제 #11
0
 private void SetupMock_Delivery_Success(BuyerUserInfo buyerUser)
 {
     Mock_Delivery     = new Mock <ExternalDeliverySystem>();
     TicketId_Delivery = GenerateTicket();
     _ = SetupMock_Delivery(Mock_Delivery, buyerUser).Returns(Task.FromResult(TicketId_Delivery));
 }
예제 #12
0
 /// <summary>
 /// 获取买家个人账户信息
 /// </summary>
 /// <returns></returns>
 public BuyerUserInfo GetBUInfo(BuyerUserInfo bus)
 {
     return(IBUIM.GetBUInfo(bus));
 }
예제 #13
0
 /// <summary>
 /// 买家注册
 /// </summary>
 /// <returns></returns>
 public bool BuyerUserInfoRegister(BuyerUserInfo bus)
 {
     return(IBUIM.BuyerUserInfoRegister(bus));
 }
 public Task <bool> PurchaseShoppingCart(BuyerUserInfo buyerUserInfo)
 {
     throw new NotImplementedException($"Should not call this method, use {nameof(PurchaseShoppingCart)}({nameof(PurchaseInfo)}) method instead.");
 }
        /// <summary>
        /// 买家登录
        /// </summary>
        /// <returns></returns>
        public JsonResult BuyerUserLogin()
        {
            string msgcode = string.Empty;

            using (StreamReader sr = new StreamReader(Request.InputStream))
            {
                string json = sr.ReadToEnd();
                if (string.IsNullOrEmpty(json))
                {
                    resultdata.msg = "没有获取到用户名和密码";
                    return(Json(resultdata));
                }
                obj = JObject.Parse(json);
            }
            string        UserName = obj["username"].ToString();
            string        PassWord = obj["password"].ToString();
            Regex         r1       = new Regex(@"^[1]+[3,5,6,7,8,9]+\d{9}$");
            Regex         r2       = new Regex(@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
            BuyerUserInfo bui      = null;

            #region 正则验证
            if (r1.IsMatch(UserName))
            {
                bui = IBUIC.QueryPhoneUser(UserName);
            }
            else if (r2.IsMatch(UserName))
            {
                bui = IBUIC.QueryEmailUser(UserName);
            }
            else
            {
                bui = IBUIC.QueryUserNameUser(UserName);
            }
            #endregion
            #region 登录验证
            if (bui == null)
            {
                resultdata.msg = "该账户不存在";
                return(Json(resultdata));
            }
            else
            {
                string loginstate = rh.GetString(BuyerUserLoginInfo + bui.ID.ToString());
                if ("1".Equals(loginstate))
                {
                    resultdata.msg = "该账户已经登录,请勿重复登录";
                    return(Json(resultdata));
                }
                else
                {
                    if (PassWord.Equals(bui.PassWord))
                    {
                        resultdata.res = 200;
                        resultdata.msg = "登录成功";
                        DateTime StartTime = DateTime.Now;
                        string   token     = JwtHelper.CreateToken(bui, StartTime);
                        var      result    = new
                        {
                            token = token,
                            type  = bui.Level
                        };
                        resultdata.data = result;

                        //保存用户登录状态
                        DateTime EndTime = StartTime.AddDays(7);
                        TimeSpan Time    = EndTime - StartTime;
                        //保存用户登录状态
                        rh.SetString(BuyerUserLoginInfo + bui.ID.ToString(), "1", Time);
                        return(Json(resultdata));
                    }
                    else
                    {
                        resultdata.msg = "密码错误";
                        return(Json(resultdata));
                    }
                }
            }
            #endregion
        }
        /// <summary>
        /// 买家注册
        /// </summary>
        /// <returns></returns>
        public JsonResult BuyerRegister()
        {
            string msgcode = string.Empty;

            using (StreamReader sr = new StreamReader(Request.InputStream))
            {
                string json = sr.ReadToEnd();
                if (string.IsNullOrEmpty(json))
                {
                    resultdata.msg = "没有获取到用户名和密码";
                    return(Json(resultdata));
                }
                obj = JObject.Parse(json);
            }
            ///账户类型
            int    Usertype            = int.Parse(obj["user_type"].ToString());
            string UserName            = obj["username"].ToString();
            string PhoneNumber         = obj["phonenumber"].ToString();
            string Email               = obj["email"].ToString();
            string WechatNumber        = obj["wechatnumber"].ToString();
            string PassWord            = obj["password"].ToString();
            string EnterpriseName      = obj["enterprisename"].ToString();
            string head                = obj["head"].ToString();
            string EnterpriseTaxNumber = obj["enterprisetaxnumber"].ToString();
            string code                = obj["code"].ToString();

            msgcode = rh.GetString(PhoneNumber);
            if (string.IsNullOrEmpty(msgcode))
            {
                resultdata.res = 500;
                resultdata.msg = "该验证码已失效,请重新输入";
                return(Json(resultdata));
            }
            else
            {
                if (!msgcode.Equals(code))
                {
                    resultdata.res = 500;
                    resultdata.msg = "该验证码有误,请重新输入";
                    return(Json(resultdata));
                }
            }
            if (IBUIC.QueryUserNameUser(UserName) != null)
            {
                resultdata.msg = "用户名已存在";
                return(Json(resultdata));
            }
            if (IBUIC.QueryPhoneUser(PhoneNumber) != null)
            {
                resultdata.msg = "电话号码已存在 ";
                return(Json(resultdata));
            }
            if (IBUIC.QueryEmailUser(Email) != null)
            {
                resultdata.msg = "邮箱已存在 ";
                return(Json(resultdata));
            }
            if (Usertype == 2)
            {
                BuyerUserInfo bui = new BuyerUserInfo();
                bui.UserName     = UserName;
                bui.PhoneNumber  = PhoneNumber;
                bui.Email        = Email;
                bui.WechatNumber = WechatNumber;
                bui.PassWord     = PassWord;
                bui.Head         = head;
                bui.Money        = 0;
                bui.Shape        = 0;                              //此属性表示审核状态
                bui.Level        = Convert.ToInt32(PowerEnum.Two); //接单权限
                if (IBUIC.BuyerUserInfoRegister(bui))
                {
                    resultdata.res = 200;
                    resultdata.msg = "注册成功";
                    return(Json(resultdata));
                }
                else
                {
                    resultdata.msg = "注册失败";
                    return(Json(resultdata));
                }
            }
            else if (Usertype == 3)
            {
                BuyerUserInfo bui = new BuyerUserInfo();
                bui.UserName            = UserName;
                bui.PhoneNumber         = PhoneNumber;
                bui.Email               = Email;
                bui.Head                = head;
                bui.WechatNumber        = WechatNumber;
                bui.PassWord            = PassWord;
                bui.EnterpriseName      = EnterpriseName;
                bui.EnterpriseTaxNumber = EnterpriseTaxNumber;
                bui.Money               = 0;
                bui.Shape               = 0;                                //此属性表示审核状态
                bui.Level               = Convert.ToInt32(PowerEnum.Three); //接单权限
                if (IBUIC.BuyerUserInfoRegister(bui))
                {
                    resultdata.res = 200;
                    resultdata.msg = "注册成功";
                    return(Json(resultdata));
                }
                else
                {
                    resultdata.msg = "注册失败";
                    return(Json(resultdata));
                }
            }
            else
            {
                resultdata.msg = "注册失败";
                return(Json(resultdata));
            }
        }