Пример #1
0
        public ActionResult Login(string loginName, string password)
        {
            ApiStatusCode apiCode  = ApiStatusCode.OK;
            UserModel     userData = AppServiceLogic.Instance.Login(loginName, password, ref apiCode);

            return(Json(new ResultModel(apiCode, userData)));
        }
        private static IActionResult GetActionResult(Exception exception, out ApiStatusCode apiStatusCode)
        {
            Type exceptionType = exception.GetType();

            if (exceptionType == typeof(BadRequestException))
            {
                apiStatusCode = ApiStatusCode.BadRequest;
                var badRequestException = (BadRequestException)exception;

                return(new BadRequestObjectResult(
                           new ApiServerResult(badRequestException.StatusCode, badRequestException.Message)));
            }

            if (exceptionType == typeof(UnauthorizedAccessException))
            {
                apiStatusCode = ApiStatusCode.Forbidden;

                return(new ForbidResult());
            }

            if (exceptionType == typeof(TimeoutException) &&
                exception.Source.StartsWith("MongoDB", StringComparison.OrdinalIgnoreCase))
            {
                apiStatusCode = ApiStatusCode.ServiceUnavailable;

                return(new JsonResult(
                           new ApiServerResult(apiStatusCode, "Server is unavailable.")));
            }

            apiStatusCode = ApiStatusCode.InternalServerError;

            return(new JsonResult(
                       new ApiServerResult(apiStatusCode, "An unhandled error occurred.")));
        }
Пример #3
0
        public static string GetSuggestionHint(this ApiStatusCode code)
        {
            var type  = code.GetType();
            var field = type.GetField(Enum.GetName(type, code));

            return(field.GetCustomAttribute <StatusCodeDescriptionAttribute>(false)?.SuggestionHint ?? "未说明");
        }
Пример #4
0
 /// <summary>
 /// Returns  simple API status code.
 /// </summary>
 /// <param name="code">API code to return.</param>
 /// <returns>Action result which represent specific API code.</returns>
 protected IActionResult StatusCode(ApiStatusCode code)
 {
     return(this.Ok(new ApiStatusResponse()
     {
         Code = code
     }));
 }
Пример #5
0
        /// <summary>
        /// 编辑用户信息
        /// </summary>
        private void EditUser()
        {
            ApiStatusCode apiCode = ApiStatusCode.OK;
            //方便测试,此处门店ID写死,真实逻辑是,根据当前登录的门店账户,获取门店ID
            bool flag = UserLogic.EditUserInfo(new UserRegisterModel()
            {
                loginName     = GetFormValue("userloginname", ""),
                username      = GetFormValue("username", ""),
                nickname      = GetFormValue("usernickname", ""),
                loginPassword = EncryptHelper.MD5(GetFormValue("password", "")),
                mobile        = GetFormValue("usermobile", ""),
                storeId       = ConstConfig.storeId,
                ShopId        = user.ID,
                UserIdentity  = user.UserIndentity,
                UserId        = UserId
            }, ref apiCode);

            if (flag)
            {
                json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.OK));
            }
            else
            {
                json = JsonHelper.JsonSerializer(new ResultModel(apiCode));
            }
        }
 public ResultApiException(string message, Exception innerException, ApiStatusCode statuscode, string statusmessage, bool iserror = false)
     : base (message, innerException)
 {
     IsError = iserror;
     StatusCode = statuscode;
     StatusMessage = statusmessage;
 }
Пример #7
0
 /// <summary>
 /// 编辑门店信息
 /// </summary>
 /// <param name="model">The model.</param>
 /// <param name="apiCode">The API code.</param>
 /// <returns>true if XXXX, false otherwise.</returns>
 public bool EditShopInfo(ShopModel model, out ApiStatusCode apiCode)
 {
     apiCode = ApiStatusCode.OK;
     if (model.ShopID > 0)
     {
         if (dal.UpdateShopInfo(model))
         {
             apiCode = ApiStatusCode.OK;
             return(true);
         }
         else
         {
             apiCode = ApiStatusCode.更新失败;
         }
     }
     else
     {
         int flag = dal.AddShopInfo(model);
         if (flag > 0)
         {
             return(true);
         }
         else
         {
             apiCode = ApiStatusCode.添加失败;
         }
     }
     return(false);
 }
Пример #8
0
 /// <summary>
 /// 登录
 /// </summary>
 /// <param name="loginName">Name of the login.</param>
 /// <param name="password">The password.</param>
 /// <param name="apiCode">The API code.</param>
 /// <returns>UserModel.</returns>
 public UserModel Login(string loginName, string password, ref ApiStatusCode apiCode)
 {
     using (var dal = FactoryDispatcher.UserFactory())
     {
         UserModel model = dal.Login(loginName, password);
         if (model != null)
         {
             if (model.IsActive == 1)
             {
                 apiCode = ApiStatusCode.OK;
                 string token = EncryptHelper.MD5(StringHelper.CreateCheckCode(20));
                 if (dal.IsAuthTokenExist(model.UserId) ? dal.UpdateUserAuthToken(model.UserId, token) : dal.AddUserAuthToken(model.UserId, token))
                 {
                     model.token = token;
                 }
                 return(model);
             }
             else
             {
                 apiCode = ApiStatusCode.账户已禁用;
                 return(null);
             }
         }
         else
         {
             apiCode = ApiStatusCode.账户不存在;
             return(null);
         }
     }
 }
Пример #9
0
 /// <summary>
 /// 编辑门店信息
 /// </summary>
 /// <param name="model">The model.</param>
 /// <param name="apiCode">The API code.</param>
 /// <returns>true if XXXX, false otherwise.</returns>
 public bool EditGoodsInfo(GoodsModel model, out ApiStatusCode apiCode)
 {
     apiCode = ApiStatusCode.OK;
     if (model.GoodsId > 0)
     {
         if (dal.UpdateGoodsInfo(model))
         {
             apiCode = ApiStatusCode.OK;
             return(true);
         }
         else
         {
             apiCode = ApiStatusCode.更新失败;
         }
     }
     else
     {
         int flag = dal.AddGoodsInfo(model);
         if (flag > 0)
         {
             return(true);
         }
         else
         {
             apiCode = ApiStatusCode.添加失败;
         }
     }
     return(false);
 }
Пример #10
0
        public ApiResponse CreateResponse(object body, string message, ApiStatusCode code)
        {
            Validation validation = new Validation();

            validation.Add(message);
            return(CreateResponse(body, validation, code));
        }
Пример #11
0
        /// <summary>
        /// 返回程序错误
        /// </summary>
        /// <param name="code">自定义状态码</param>
        /// <returns></returns>
        public static JsonResult Error(ApiStatusCode status, string exception)
        {
            int       code   = (int)status;
            ApiResult result = new ApiResult(false, code, exception);

            return(new JsonResult(result));
        }
Пример #12
0
        /// <summary>
        /// 成功,包含状态消息、业务数据、扩展数据
        /// </summary>
        /// <param name="code">自定义状态码</param>
        /// <param name="data">业务数据</param>
        /// <param name="exted">扩展数据</param>
        /// <returns></returns>
        public static JsonResult Success(ApiStatusCode status, object data, object exted)
        {
            int       code   = (int)status;
            ApiResult result = new ApiResult(true, code, code.GetEnumDescription(typeof(ApiStatusCode)), data, exted);

            return(new JsonResult(result));
        }
Пример #13
0
        /// <summary>
        /// 返回自定义错误
        /// </summary>
        /// <param name="code">自定义状态码</param>
        /// <returns></returns>
        public static JsonResult Error(ApiStatusCode status)
        {
            int       code   = (int)status;
            ApiResult result = new ApiResult(false, code, code.GetEnumDescription(typeof(ApiStatusCode)));

            return(new JsonResult(result));
        }
Пример #14
0
    {/// <summary>
     /// 检查登录
     /// </summary>
     /// <param name="appCode"></param>
     /// <returns></returns>
        public static bool CheckLogin(ref ApiStatusCode appCode)
        {
            AdminLoginModel data = GetCurrentUser();

            if (data != null)
            {
                data = UserLogic.Instance.Login(data.LoginName, data.LoginPassword);
                if (data != null)
                {
                    if (data.UserStatus == 1)
                    {
                        WriteCookies(data);
                        appCode = ApiStatusCode.OK;
                        return(true);
                    }
                    else
                    {
                        appCode = ApiStatusCode.账户已禁用;
                    }
                }
                else
                {
                    appCode = ApiStatusCode.账户密码不正确;
                }
            }
            else
            {
                appCode = ApiStatusCode.没有登录;
            }
            return(false);
        }
Пример #15
0
        /// <summary>
        /// 盟友注册申请
        /// </summary>
        private void AllyApply()
        {
            int    uid        = GetFormValue("userid", 0);
            int    mid        = GetFormValue("mid", 0);
            string nickName   = GetFormValue("nickname", "");
            string pwd        = GetFormValue("pwd", "");
            string username   = GetFormValue("username", "");
            string usermobile = GetFormValue("usermobile", "");
            int    sex        = GetFormValue("sex", 0);

            if (mid > 0)
            {
                uid = mid;
                uid = uid - 2000;
            }
            if (uid > 0)
            {
                ApiStatusCode code = ApiStatusCode.OK;

                if (UserLogic.IsExist(uid))
                {
                    bool flag = UserLogic.AllyApply(uid, usermobile, pwd, nickName, username, sex, ref code);
                    json = JsonHelper.JsonSerializer(new ResultModel(code));
                }
                else
                {
                    json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.无效的盟主ID));
                }
            }
            else
            {
                json = JsonHelper.JsonSerializer(new ResultModel(ApiStatusCode.无效的盟主ID));
            }
        }
Пример #16
0
        /// <summary>
        /// 盟豆兑换
        /// </summary>
        /// <param name="userId">The user identifier.</param>
        /// <param name="amount">The amount.</param>
        /// <param name="code">The code.</param>
        /// <returns>true if XXXX, false otherwise.</returns>
        public static bool ConvertToBean(int userId, int amount, ref ApiStatusCode code)
        {
            if (amount < 100)
            {
                code = ApiStatusCode.兑换的盟豆数量不能少于100;
                return(false);
            }

            UserModel userModel = null;

            using (var dal = FactoryDispatcher.UserFactory())
            {
                userModel = dal.GetUserModel(userId);
            }

            decimal userAmount = userModel.MengBeans - userModel.MengBeansLocked;

            if (userAmount < amount)
            {
                code = ApiStatusCode.你的盟豆不够;
                return(false);
            }

            using (var dal = FactoryDispatcher.UserFactory())
            {
                dal.addMengBeansLocked(userId, amount);
                dal.insertBeansConvert(userId, userModel.BelongOne, amount);
                code = ApiStatusCode.OK;
            }
            return(true);
        }
Пример #17
0
 public static bool AllyApply(int userId, string mobile, string password
                              , string nickname, string userName
                              , int sex, ref ApiStatusCode apiCode)
 {
     using (var dal = FactoryDispatcher.UserFactory())
     {
         if (!RegexHelper.IsValidMobileNo(mobile))
         {
             apiCode = ApiStatusCode.无效手机号;
         }
         else if (dal.ExistApplyFriend(mobile))
         {
             apiCode = ApiStatusCode.你已申请请耐心等到审核;
         }
         else if (dal.UserExist(mobile, ConstConfig.storeId))
         {
             apiCode = ApiStatusCode.手机用户已存在;
         }
         else
         {
             dal.SaveApplyFriend(userId, mobile, EncryptHelper.MD5(password), nickname, userName, sex);
             apiCode = ApiStatusCode.OK;
         }
         return(true);
     }
 }
Пример #18
0
        /// <summary>
        /// 领取优惠券
        /// </summary>
        private void onCouponGet()
        {
            int    couponid      = GetFormValue("couponid", 0);
            int    userid        = GetFormValue("userid", 0);
            int    currentuserid = GetFormValue("currentuserid", 0);
            string name          = GetFormValue("name", "");
            string mobile        = GetFormValue("mobile", "");
            string from          = GetFormValue("from", "");

            string shops = GetFormValue("shops", "");



            //var couponInfo = UserLogic.Instance.GetMyCouponModel(currentuserid, couponid);
            //if (couponInfo == null)
            //{
            ApiStatusCode apiCode = ApiStatusCode.OK;
            bool          flag    = UserLogic.Instance.onCouponGet(couponid, userid, currentuserid, name, mobile, from, shops, ref apiCode);

            if (flag)
            {
                json = JsonConvert.SerializeObject(new ResultModel(ApiStatusCode.OK));
            }
            else
            {
                json = JsonConvert.SerializeObject(new ResultModel(apiCode));
            }
            //}
            //else
            //    json = JsonConvert.SerializeObject(new ResultModel(ApiStatusCode.优惠券已领完, "您已领取过了,无需重复领取"));
        }
Пример #19
0
        /// <summary>
        /// 编辑用户信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static bool EditUserInfo(UserRegisterModel model, ref ApiStatusCode apiCode)
        {
            apiCode = ApiStatusCode.OK;
            using (var dal = FactoryDispatcher.UserFactory())
            {
                if (model.UserId > 0)
                {
                    bool b = dal.UpdateUserInfo(model);
                    if (!b)
                    {
                        apiCode = ApiStatusCode.更新失败;
                    }
                    return(b);
                }
                else
                {
                    int flag = dal.AddUserInfo(model);
                    if (flag == -1)
                    {
                        apiCode = ApiStatusCode.账户已存在;
                    }
                    else if (flag == 0)
                    {
                        apiCode = ApiStatusCode.添加失败;
                    }

                    return(flag > 0);
                }
            }
        }
Пример #20
0
 /// <summary>
 /// Returns API status code which contains information about errors.
 /// </summary>
 /// <param name="code">API code to return.</param>
 /// <param name="errors">Sequence of errors.</param>
 /// <returns>Action result which represent specific API code.</returns>
 protected IActionResult ErrorCode(ApiStatusCode code, IEnumerable <string> errors)
 {
     return(this.Ok(new ApiErrorStatusResponse()
     {
         Code = code,
         Errors = errors.ToArray()
     }));
 }
Пример #21
0
 public ApiResponse CreateResponse(object data, ApiStatusCode code)
 {
     return(new ApiResponse()
     {
         Body = data,
         Code = code
     });
 }
Пример #22
0
 /// <summary>
 /// Returns API status code which contains information about errors.
 /// </summary>
 /// <param name="code">API code to return.</param>
 /// <param name="errors">Sequence of errors.</param>
 /// <returns>Action result which represent specific API code.</returns>
 protected IActionResult ErrorCode(ApiStatusCode code, IEnumerable <IdentityError> errors)
 {
     return(this.Ok(new ApiErrorStatusResponse()
     {
         Code = code,
         Errors = errors.Select(_ => _.Description).ToArray()
     }));
 }
Пример #23
0
 public ApiException(ApiStatusCode statusCode,
                     IApiStatusMessageDictionary statusMessageDictionary,
                     string message = null,
                     string details = null)
     : base(statusCode, statusMessageDictionary, message)
 {
     Details = details;
 }
Пример #24
0
        /// <summary>
        ///   盟友申请审核
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="id"></param>
        /// <param name="status">1成功2拒绝</param>
        /// <returns></returns>
        public static bool AllyApplyAudit(int userId, int id, int status, ref ApiStatusCode code)
        {
            using (var dal = FactoryDispatcher.UserFactory())
            {
                ApplyFriendModel model = dal.getApplyFriendModel(id);
                if (model == null || model.UserId != userId)
                {
                    code = ApiStatusCode.操作失败;
                    return(false);
                }

                if (status == 1)
                {
                    //using (TransactionScope scope = new TransactionScope())
                    //{
                    dal.updateApplyFriendStatus(id, 1);
                    UserRegisterModel register = new UserRegisterModel();
                    register.belongOne     = userId;
                    register.loginName     = model.Mobile;
                    register.loginPassword = model.Password;
                    register.mobile        = model.Mobile;
                    register.nickname      = model.NickName;
                    register.ShopId        = dal.getUserShopId(userId);
                    register.BelongShopId  = ShopLogic.GetBelongShopId(register.ShopId);
                    register.storeId       = ConstConfig.storeId;
                    register.UserIdentity  = 0;
                    register.username      = model.UserName;
                    register.userGender    = model.Sex == 1 ? "M" : "F";
                    if (dal.AddUserInfo(register) > 0)
                    {
                        masterUpdate(userId);

                        //获取积分奖励配置
                        ScoreConfigModel scoreCfg = ConfigLogic.GetScoreConfig();
                        //添加盟主创建订单,奖励积分
                        if (scoreCfg.CreateOrderScore > 0 && dal.addUserIntegral(userId, scoreCfg.CreateOrderScore) > 0)
                        {
                            BeansRecordsModel model2 = new BeansRecordsModel();
                            model2.Amount     = scoreCfg.CreateOrderScore;
                            model2.UserId     = userId;
                            model2.LogType    = 1;
                            model2.Income     = 1;
                            model2.Remark     = "邀请盟友奖励";
                            model2.OrderId    = "";
                            model2.CreateTime = DateTime.Now;
                            dal.AddBeansRecords(model2);
                        }
                    }
                    //    scope.Complete();
                    //}
                }
                else if (status == 2)
                {
                    dal.updateApplyFriendStatus(id, 2);
                }
            }
            return(true);
        }
Пример #25
0
        public ApiResponse(ApiStatusCode apiStatusCode, string message)
        {
            StatusCode = apiStatusCode;

            if (string.IsNullOrEmpty(message))
                message = Enum.GetName(typeof(ApiStatusCode), apiStatusCode);

            Message = message;
        }
        public IVPNRestRequestApiException(System.Net.HttpStatusCode httpRetCode, ApiStatusCode apiStatusCode, string apiMessage,
                                           ResponseWithStatus responseWithStatus = null)
            : base($"{(string.IsNullOrEmpty(apiMessage) ? $"{(int)apiStatusCode} - {apiStatusCode}" : (apiMessage + $" {(int)apiStatusCode}"))}")
        {
            HttpRetCode        = httpRetCode;
            ResponseWithStatus = responseWithStatus;

            ApiStatusCode = apiStatusCode;
            ApiMessage    = apiMessage;
        }
        public void PutTest(int statusCode, int expectedStatusCode)
        {
            //Arrange
            var api = new ApiStatusCode();

            //Act
            var result = api.Put(statusCode);

            //Assert
            Assert.Equal((int)result.StatusCode, expectedStatusCode);
        }
Пример #28
0
        /// <summary>
        /// 获取菜单
        /// </summary>
        private void GetMenuList()
        {
            ApiStatusCode   appCode    = ApiStatusCode.OK;
            SystemLeftModel resultData = new SystemLeftModel();

            if (CheckLogin(ref appCode))
            {
                resultData.menuData  = SystemLogic.GetMenuList(user.UserIndentity);
                resultData.userData  = user;
                resultData.authority = "";
            }
            json = JsonHelper.JsonSerializer(new ResultModel(appCode, resultData));
        }
Пример #29
0
        /// <summary>
        /// 获取枚举的描述
        /// </summary>
        /// <param name="enumValue"></param>
        /// <returns></returns>
        public static string GetEnumDesc(this ApiStatusCode enumValue)
        {
            string str = enumValue.ToString();

            System.Reflection.FieldInfo field = enumValue.GetType().GetField(str);
            object[] objs = field.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);
            if (objs == null || objs.Length == 0)
            {
                return(string.Empty);
            }
            System.ComponentModel.DescriptionAttribute da = (System.ComponentModel.DescriptionAttribute)objs[0];
            return(da.Description);
        }
Пример #30
0
 public ActionResult Login(string loginName, string password)
 {
     try
     {
         ApiStatusCode apiCode  = ApiStatusCode.OK;
         UserModel     userData = AppServiceLogic.Instance.Login(loginName, password, OS, ref apiCode);
         return(Json(new ResultModel(apiCode, userData)));
     }
     catch (Exception ex)
     {
         LogHelper.Log(string.Format("Login user:message:{0},StackTrace:{1}", ex.Message, ex.StackTrace), LogHelperTag.ERROR);
         return(Json(new ResultModel(ApiStatusCode.SERVICEERROR)));
     }
 }
Пример #31
0
        private ApiResponse CreateResponse(object body, Validation validation, ApiStatusCode code)
        {
            var responseApi = new ApiResponse()
            {
                Body = body,
                Code = code
            };

            if (validation != null)
            {
                responseApi.Validations.AddRange(validation.Items.Select(i => i.Message).ToList());
            }

            return(responseApi);
        }
Пример #32
0
 public ActionResult AllyApplyAudit(int id, int status)
 {
     try
     {
         ApiStatusCode code   = ApiStatusCode.OK;
         int           userId = GetAuthUserId();
         UserLogic.AllyApplyAudit(userId, id, status, ref code);
         return(Json(new ResultModel(ApiStatusCode.OK, code)));
     }
     catch (Exception ex)
     {
         LogHelper.Log(string.Format("AllyApplyAudit user:message:{0},StackTrace:{1}", ex.Message, ex.StackTrace), LogHelperTag.ERROR);
         return(Json(new ResultModel(ApiStatusCode.SERVICEERROR)));
     }
 }
Пример #33
0
 public ProtocolException(ApiStatusCode statusCode, string message)
     : base(message)
 {
     this.StatusCode = statusCode;
 }
Пример #34
0
 public ProtocolException(ApiStatusCode statusCode)
     : base()
 {
     this.StatusCode = statusCode;
 }
Пример #35
0
 /// <summary>
 /// Constructor for BpApiException.s
 /// </summary>
 /// <param name="code">The HTTP status code to re-throw in the web layer.</param>
 public BpApiException(ApiStatusCode code)
 {
     this.RethrowableStatusCode = code;
 }