예제 #1
0
파일: BaseService.cs 프로젝트: iCSJ/WebApi
        public List <T> GetWhere(string json)
        {
            ApiResultModel r = client.Get(json: json);

            ValidResult(r);
            return(JsonConvert.DeserializeObject <List <T> >(r.Content.ToString()));
        }
예제 #2
0
        private async Task<ApiResultModel> ResolveCall(string id, string parameters)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                return ApiResultModel.FromError("No API name given.");
            }

            if (apiMethods.TryGetValue(id, out ApiMethod info))
            {
                try
                {
                    object parametersObject = null;
                    if (info.HasParameter && !string.IsNullOrWhiteSpace(parameters))
                    {
                        parametersObject = JsonConverter.Deserialize(parameters, info.ParameterType);
                    }

                    object result = await info.InvokeAsync(parametersObject);
                    return new ApiResultModel
                    {
                        Success = true,
                        Value = info.HasReturnValue ? JsonConverter.Serialize(result) : null,
                    };
                }
                catch (Exception ex) { return ApiResultModel.FromError(ex.Message); }
            }
            else { return ApiResultModel.FromError($"Unknown API call \"{id}\"."); }
        }
예제 #3
0
 public async Task HandleScriptCall(string data)
 {
     // run script call handling on separate task to free up UI
     await Task.Run(async() =>
     {
         var info = JsonConverter.Deserialize <InvokeInfoModel>(data);
         if (info != null)
         {
             if (info.Type == "title")
             {
                 string title = JsonConverter.Deserialize <string>(info.Parameters);
                 TitleChanged?.Invoke(this, title);
             }
             else if (info.Type == "api")
             {
                 var result = await ResolveCall(info.Id, info.Parameters);
                 await EndApiCall(info, result);
             }
             else if (info.CallbackId != null)
             {
                 string message = $"Invalid invoke type \"{info.Type ?? "<null>"}\".";
                 await EndApiCall(info, ApiResultModel.FromError(message));
             }
         }
     });
 }
        private async Task HandleException(HttpContext context, Exception e)
        {
            context.Response.ContentType = "text/json;charset=utf-8;";

            if (Regex.IsMatch(context.Request.Path.Value.ToLower(), "/api/*/*"))
            {
                var data = new ApiResultModel()
                {
                    StatusCode   = 500,
                    ErrorMessage = e.Message,
                    Data         = new object[] { },
                    IsSuccess    = false
                };

                await context.Response.WriteAsync(data.ToJson());
            }
            else
            {
                var data = new AjaxResult
                {
                    state   = "error",
                    message = e.Message
                };

                await context.Response.WriteAsync(data.ToJson());
            }

            var errorMsg =
                $"【抛出信息】:{e.Message} \r\n【异常类型】:{e.GetType().Name} \r\n【异常信息】:{e.Message} \r\n【堆栈调用】:\r\n{e.StackTrace}";

            _logger.LogError(errorMsg);
        }
예제 #5
0
        public ApiResultModel EditLifeBill(EditLifeBillModel model)
        {
            ApiResultModel resultModel = new ApiResultModel();

            try
            {
                //通过用户Id查找业主
                IUserBLL ownerBll = BLLFactory <IUserBLL> .GetBLL("UserBLL");

                T_User owner = ownerBll.GetEntity(u => u.Id == model.UserId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

                //如果业主存在
                if (owner != null)
                {
                    //如果验证Token不通过或已过期
                    if (DateTime.Now > owner.TokenInvalidTime || model.Token != owner.Token)
                    {
                        resultModel.Msg = APIMessage.TOKEN_INVALID;
                        return(resultModel);
                    }

                    //更新最近登录时间和Token失效时间
                    owner.LatelyLoginTime  = DateTime.Now;
                    owner.TokenInvalidTime = DateTime.Now.AddDays(Convert.ToInt32(PropertyUtils.GetConfigParamValue("TokenInvalid")));
                    ownerBll.Update(owner);

                    ILifeBillBLL lifeBillBll = BLLFactory <ILifeBillBLL> .GetBLL("LifeBillBLL");

                    T_LifeBill lifebill = lifeBillBll.GetEntity(u => u.Id == model.Id && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

                    //如果该生活记账存在
                    if (lifebill != null)
                    {
                        lifebill.Id              = model.Id;
                        lifebill.BillTypeId      = model.CategoryId;
                        lifebill.PayTypeId       = model.PayId;
                        lifebill.Money           = model.Money;
                        lifebill.ConsumptionDate = Convert.ToDateTime(model.PayDate);
                        lifebill.CreateDate      = Convert.ToDateTime(model.DateStr);
                        lifebill.Memo            = model.Mark;

                        //更新
                        lifeBillBll.Update(lifebill);
                    }
                    else
                    {
                        resultModel.Msg = "生活记账不存在";
                    }
                }
                else
                {
                    resultModel.Msg = APIMessage.NO_USER;
                }
            }
            catch
            {
                resultModel.Msg = APIMessage.REQUEST_EXCEPTION;
            }
            return(resultModel);
        }
예제 #6
0
 public JsonResult AddUpdateSurgeries(long surgeryID, PatientSurgery_Custom surgery)
 {
     try
     {
         if (surgery.bodyPart == null || surgery.bodyPart == "")//!Regex.IsMatch(surgery.bodyPart, @"^[a-zA-Z\s]+$"))
         {
             ApiResultModel apiresult = new ApiResultModel();
             apiresult.message = "Provide surgery name.";
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
         SurgeriesRepository objRepo = new SurgeriesRepository();
         if (surgeryID == 0)
         {
             ApiResultModel apiresult = objRepo.AddPatientSurgery(surgery);
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
         else
         {
             ApiResultModel apiresult = objRepo.EditPatientSurgery(surgeryID, surgery);
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
     }
     catch (Exception ex)
     {
         return(Json(new { Message = ex.Message }));
     }
 }
예제 #7
0
        public ApiResultModel <List <RoleResponseModel> > GetRoleList()
        {
            var result = new ApiResultModel <List <RoleResponseModel> >();

            result.Data = _roleService.GetRoleList();
            return(result);
        }
예제 #8
0
        public ApiResultModel CallApi()
        {
            string dta = this.Data.Replace("'", "\"");

            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(this.URI),
                Content    = new StringContent(dta, Encoding.UTF8, "application/json")
            };

            if (this.Format.ToUpper() == "XML")
            {
                request.Content = new StringContent(dta, Encoding.UTF8, "application/xml");
            }

            var response = _client.SendAsync(request).ConfigureAwait(false);

            var Content    = response.GetAwaiter().GetResult().Content.ReadAsStringAsync();
            var serContent = JsonConvert.SerializeObject(Content);

            ApiResultModel apiResult = JsonConvert.DeserializeObject <ApiResultModel>(serContent);

            _result = apiResult;
            return(apiResult);
        }
예제 #9
0
        public ApiResultModel Login(UserLogOnEntity userLogOnEntity)
        {
            //检测cookie是否创建
            HttpContext context = HttpContext.Current;
            HttpCookie  cookie  = context.Request.Cookies.Get("_user");

            if (null == cookie)
            {
                //执行登录操作


                //如果登录成功写入Cookie
                cookie       = new HttpCookie("_user");
                cookie.Value = userLogOnEntity.C_UserId.ToString();
                cookie.Expires.AddMinutes(5);
                context.Response.SetCookie(cookie);
            }
            else
            {
                string value = cookie.Value;
                cookie.Expires.AddMinutes(5);
            }

            var result = new ApiResultModel()
            {
                IsSuccess  = false,
                StatusCode = StatusEnum.StatusCodeEnum.Error,
                Message    = StringResource.LoginFail
            };

            result.IsSuccess = false;
            return(result);
        }
예제 #10
0
        /// <summary>
        /// validate post params
        /// </summary>
        /// <param name="customerId"></param>
        /// <param name="sku"></param>
        /// <param name="quantity"></param>
        /// <param name="result"></param>
        private void ValidateParams(int customerId, string sku, int quantity, out ApiResultModel <bool> result)
        {
            result = new ApiResultModel <bool>()
            {
                Status = ResultStatusEnum.UnSuccess
            };
            if (customerId == 0)
            {
                result.Status  = ResultStatusEnum.ValidationError;
                result.Message = "Giriş yapılması gerekiyor";
                return;
            }

            if (string.IsNullOrEmpty(sku))
            {
                result.Status  = ResultStatusEnum.ValidationError;
                result.Message = "Ürün bulunamadı.";
                return;
            }

            if (quantity == 0)
            {
                result.Status  = ResultStatusEnum.ValidationError;
                result.Message = "Adet giriniz.";
                return;
            }
        }
예제 #11
0
        /// <summary>
        /// customer data validate
        /// </summary>
        /// <param name="customerId"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        private CustomerModel ValidateCustomer(int customerId, out ApiResultModel <bool> result)
        {
            result = new ApiResultModel <bool>()
            {
                Status = ResultStatusEnum.UnSuccess
            };
            cacheKey = string.Format(cacheKey, customerId);

            if (!cache.TryGetValue(cacheKey, out CustomerModel customer))
            {
                if (customer == null)
                {
                    var customerServiceModel = _customerService.GetCustomerById(customerId);
                    customer = (CustomerModel)customerServiceModel.Result;
                }
            }

            if (customer == default(CustomerModel))
            {
                result.Status  = ResultStatusEnum.ValidationError;
                result.Message = "Giriş yapılması gerekiyor";
                return(customer);
            }

            if (!customer.IsActive || customer.IsDeleted)
            {
                result.Status  = ResultStatusEnum.ValidationError;
                result.Message = "Üyeliğiniz bulunamamıştır.";
                return(customer);
            }

            return(customer);
        }
예제 #12
0
        public async Task <ActionResult> Create(UsersEditModel idata)
        {
            if (idata.password.isNOEOW())
            {
                throw new ArgumentException("Password is required");
            }
            if (!idata.password.Equals(idata.confirm_password))
            {
                throw new ArgumentException("Password missmatch");
            }


            var result = new ApiResultModel <Users>();
            var data   = await _storage.GetRepository <IUsers_Repository>().CreateAsync(_mapper.Map <Users>(idata), idata.password);

            if (data != null)
            {
                result.Data = data;
                return(Ok(result));
            }
            else
            {
                result.BadRequest();
                return(BadRequest(result));
            }
        }
예제 #13
0
        public async Task <ActionResult> Update(Guid id, UsersEditModel idata)
        {
            if (!idata.password.isNOEOW() && (!idata.password.Equals(idata.confirm_password)))
            {
                throw new ArgumentException("Password missmatch");
            }

            var result = new ApiResultModel <UsersEditModel>();

            if (idata.id != id)
            {
                result.BadRequest("ID mismatch");
                return(BadRequest(result));
            }
            var data = await _storage.GetRepository <IUsers_Repository>().UpdateAsync(_mapper.Map <Users>(idata));

            if (data != null)
            {
                result.Data = idata;
                return(Ok(result));
            }
            else
            {
                result.BadRequest();
                return(BadRequest(result));
            }
        }
예제 #14
0
        public async Task <ActionResult> Upload(string module, bool isPublic = false, int width = 0, int height = 0)
        {
            var result = new ApiResultModel <FileStore_Images>();

            if (width > 3000 || height > 3000)
            {
                result.BadRequest("Width and Height must be less than 3000");
                return(BadRequest(result));
            }
            try
            {
                var file = Request.Form.Files[0];
                result = await _fileManager.SaveImage(module, file, isPublic, width, height);

                switch (result.Status)
                {
                case 200: return(Ok(result));

                case 404: return(NotFound(result));

                default: return(BadRequest(result));
                }
            }catch (Exception e)
            {
                result.BadRequest(e.Message);
                return(BadRequest(result));
            }
        }
예제 #15
0
 public JsonResult AddUpdateMedications(long mid, PatientMedication_Custom medication)
 {
     try
     {
         if (medication.medicineName == null || medication.medicineName == "" || !Regex.IsMatch(medication.medicineName, "^[0-9a-zA-Z ]+$"))
         {
             ApiResultModel apiresult = new ApiResultModel();
             apiresult.message = "Invalid medicine name.Only letters and numbers are allowed.";
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
         MedicationRepository objRepo = new MedicationRepository();
         if (mid == 0)
         {
             ApiResultModel apiresult = new ApiResultModel();
             apiresult = objRepo.AddMedication(medication);
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
         else
         {
             ApiResultModel apiresult = new ApiResultModel();
             apiresult = objRepo.EditMedication(mid, medication);
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
     }
     catch (Exception ex)
     {
         return(Json(new { Message = ex.Message }));
     }
 }
예제 #16
0
        public async Task <ActionResult <ApiResultModel> > HttpsApiCall()
        {
            var model   = new ApiResultModel();
            var handler = new HttpClientHandler()
            {
                UseDefaultCredentials = true,
                ServerCertificateCustomValidationCallback = (sender, cert, chain, error) =>
                {
                    model.Thumbprint = cert.Thumbprint;
                    model.Subject    = cert.Subject;
                    model.Error      = error;
                    return(CertificateExtensions.CertificateValidationCallBack(sender, cert, chain, error, model));
                }
            };

            using (var httpClient = new HttpClient(handler))
            //using (var httpClient = new HttpClient())
            {
                try
                {
                    var result = await httpClient.GetAsync($"{service1Options.Https}/api/test");

                    model.Result = JsonSerializer.Deserialize <TestApiResultModel>(await result.Content.ReadAsStringAsync());
                    return(model);
                }
                catch (Exception e)
                {
                    model.Exception = $"{e.Message}, {e.InnerException?.Message}";
                }
            }

            return(model);
        }
예제 #17
0
        public JsonResult AddUpdateAllergies(long allergiesID, PatientAllergies_Custom allergy)
        {
            try
            {
                if (allergy.allergyName == null || allergy.allergyName == "" || !Regex.IsMatch(allergy.allergyName, "^[0-9a-zA-Z ]+$"))
                {
                    ApiResultModel apiresult = new ApiResultModel();
                    apiresult.message = "Invalid allergy name.Only letters and numbers are allowed.";

                    return(Json(new { Success = true, ApiResultModel = apiresult }));
                }
                AllergiesRepository objRepo = new AllergiesRepository();
                if (allergiesID == 0)
                {
                    ApiResultModel apiresult = objRepo.AddPatientAllergy(allergy);
                    return(Json(new { Success = true, ApiResultModel = apiresult }));
                }
                else
                {
                    ApiResultModel apiresult = objRepo.EditPatientAllergy(allergiesID, allergy);
                    return(Json(new { Success = true, ApiResultModel = apiresult }));
                }
            }
            catch (Exception ex)
            {
                return(Json(new { Message = ex.Message }));
            }
        }
예제 #18
0
    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        // 例外事件不在此處理
        if (actionExecutedContext.Exception != null)
        {
            return;
        }

        base.OnActionExecuted(actionExecutedContext);
        ApiResultModel oResult = new ApiResultModel();

        object oActContent = actionExecutedContext.ActionContext.Response.Content.ReadAsAsync <object>().Result;

        if (oActContent.GetType().Equals(typeof(ApiResultModel)))
        {
            //若 ActionContext 傳回結果已是[ApiResultModel],則直接傳回 2017.03.27
            oResult = (ApiResultModel)oActContent;
            if (oResult.Status == 0)
            {
                //若未指定 StatusCode ,預設為 [HttpStatusCode.OK (200)]
                oResult.Status = HttpStatusCode.OK;
            }
        }
        else
        {
            oResult.Status = actionExecutedContext.ActionContext.Response.StatusCode;                             // 取得 API 返回的狀態碼
            oResult.Data   = actionExecutedContext.ActionContext.Response.Content.ReadAsAsync <object>().Result;  // 取得 API 返回的資料
            if (Util._IsLocalDebugMode)
            {
                oResult.ErrorMessage = "** [Local Debug Mode] **"; //提示目前為 「本機開發除錯模式」
            }
        }

        actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(oResult.Status, oResult);   // 封裝回傳格式
    }
예제 #19
0
        public async Task <ApiResultModel> MakeCall(string url)
        {
            ApiResultModel model = new ApiResultModel {
                Url = url
            };

            try {
                HttpClientHandler handler = new HttpClientHandler {
                    UseDefaultCredentials = true,
                    ServerCertificateCustomValidationCallback = (sender, cert, chain, error) => {
                        // cert is disposed as soon as this method is done, so grab everything we want while we have it
                        model.CertThumbprint = cert?.Thumbprint;
                        model.CertSubject    = cert?.Subject;
                        model.CertError      = error;
                        return(error == SslPolicyErrors.None); // <-- fail request on cert error
                    }
                };
                HttpClient          client   = new HttpClient(handler);
                HttpResponseMessage response = await client.GetAsync(url);

                model.StatusCode = (int)response.StatusCode;
                //TODO: in production code: response.EnsureSuccessStatusCode();
                string body = await response.Content.ReadAsStringAsync();

                model.Response = JsonSerializer.Deserialize <List <string> >(body);
            } catch (/*HttpRequestException*/ Exception ex) {
                model.Exception = $"{ex.Message}, {ex.InnerException?.Message}";
            }

            return(model);
        }
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            var user = context.HttpContext.User;

            //var xxx = _permissionCliam;
            if (!user.Identity.IsAuthenticated)
            {
                var result = new ApiResultModel <bool>();
                result.Unauthorized();
                context.Result = new JsonResult(result);
                context.HttpContext.Response.StatusCode = result.Status;
                return;
            }
            //return;
            //// you can also use registered services
            //var someService = context.HttpContext.RequestServices.GetRequiredService<IConfiguration>();
            var alowAccess = user.Claims.Where(x => x.Value.Equals(_permissionCliam)).FirstOrDefault();

            if (alowAccess == null || alowAccess.Value.isNOEOW())
            {
                var result = new ApiResultModel <bool>();
                result.Forbidden();
                context.Result = new JsonResult(result);
                context.HttpContext.Response.StatusCode = result.Status;
                return;
            }
            return;
        }
예제 #21
0
        internal static ApiResultModel GlobalExceptionHandler(ExceptionContext exceptionfiltercontext)
        {
            var    exception = exceptionfiltercontext.Exception;
            string errorMsg  = exception.Message;
            var    url       = exceptionfiltercontext.HttpContext.Request.Path.ToString();

            while (exception.InnerException != null)
            {
                exception = exception.InnerException;
                errorMsg  = exception.Message;
            }
            var logger = LogManager.GetLogger(Startup.repository.Name, typeof(GlobalException));

            logger.Error("捕获全局异常!错误信息:" + errorMsg + "访问路径:" + url + "堆栈:" + exception.StackTrace);
            var result = new ApiResultModel(false, errorMsg, url)
            {
            };

            if (exception is AuthorizeException)
            {
                result = new ApiResultModel(false, errorMsg, url, JKExceptionType.NoAuthorized)
                {
                };
            }
            return(result);
        }
예제 #22
0
        public ApiResultModel GetShopInfo([FromUri] ShopInfoModel model)
        {
            ApiResultModel resultModel = new ApiResultModel();

            try
            {
                //获取当前用户
                IShopUserBLL userBll = BLLFactory <IShopUserBLL> .GetBLL("ShopUserBLL");

                T_ShopUser user = userBll.GetEntity(u => u.Id == model.UserId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

                if (user != null)
                {
                    //如果验证Token不通过或已过期
                    if (DateTime.Now > user.TokenInvalidTime || model.Token != user.Token)
                    {
                        resultModel.Msg = APIMessage.TOKEN_INVALID;
                        return(resultModel);
                    }
                    //更新最近登录时间和Token失效时间
                    user.LatelyLoginTime  = DateTime.Now;
                    user.TokenInvalidTime = DateTime.Now.AddDays(Convert.ToInt32(PropertyUtils.GetConfigParamValue("TokenInvalid")));
                    userBll.Update(user);

                    //调用商家BLL层获取商家信息
                    IShopBLL shopBll = BLLFactory <IShopBLL> .GetBLL("ShopBLL");

                    var shop = shopBll.GetEntity(s => s.Id == model.ShopId);
                    //如果商家信息不为空
                    if (shop != null)
                    {
                        resultModel.result = new
                        {
                            ShopName          = shop.ShopName,
                            ShopContent       = string.Format("MobilePage/StoreIntroduce?ShopId={0}", shop.Id),
                            ShopMainSale      = shop.MainSale,
                            StartBusinessTime = shop.StartBusinessTime,
                            EndBusinessTime   = shop.EndBusinessTime,
                            ShopAddress       = shop.Address,
                            Phone             = shop.Phone,
                            ShopPicList       = shop.ImgPath
                        };
                    }
                    else
                    {
                        resultModel.Msg = APIMessage.NO_APP;
                    }
                }
                else
                {
                    resultModel.Msg = APIMessage.NO_USER;
                }
            }
            catch
            {
                resultModel.Msg = APIMessage.REQUEST_EXCEPTION;
            }

            return(resultModel);
        }
예제 #23
0
        public async Task <IActionResult> Get([FromQuery] int oprator, [FromQuery] PagingModel paging, [FromQuery] SysMenusRequestModel queryParameter)
        {
            var apiResult = new ApiResultModel(ErrorCodeType.Success);

            switch (paging.Oprator)
            {
            case 1:
            {
                //获取不分页数据集合
                var data = await sysMenusService.GetModelsAsync(queryParameter);

                apiResult.Result = data;
                return(Ok(apiResult));
            }

            default:
            {
                var data = await sysMenusService.GetModelsAsync(paging, queryParameter);

                apiResult.Result = new
                {
                    paging,
                    data
                };
                return(Ok(apiResult));
            }
            }
        }
예제 #24
0
        public JsonResult UpdateFamilyHX(UpdateFamilyHX _objFHX)
        {
            try
            {
                ApiResultModel apiresult = new ApiResultModel();
                UpdateFamilyHX objHX     = new UpdateFamilyHX();
                objHX.patientfamilyHXID = _objFHX.patientfamilyHXID;
                objHX.patientID         = _objFHX.patientID;
                if (_objFHX.relationship != null)
                {
                    objHX.relationship = Regex.Replace(_objFHX.relationship, @"^\s*$\n", string.Empty, RegexOptions.Multiline).Trim();
                }
                else
                {
                    objHX.relationship = null;
                }

                apiresult = oMyHealthRepository.UpdateFamilyHX(objHX);
                return(Json(new { Success = true, ApiResultModel = apiresult }));
            }
            catch (System.Web.Http.HttpResponseException ex)
            {
                return(Json(new { Message = ex.Response }));
            }
        }
예제 #25
0
        public async Task <IActionResult> Get()
        {
            var apiData = new ApiResultModel();
            var userId  = UserHttpInfo.GetValueByToken(Common.Utility.Models.Config.TokenInfoType.UserId);
            var user    = await sysUsersService.GetModelAsync(userId);//根据id获取用户信息

            var requestAuth = new RequestAuthModel()
            {
                Key    = user.user_account,
                Secret = user.user_pwd
            };
            //通过用户信息获取最新的token
            var responesToken = await new ToKenService().GetTokenAsync(requestAuth);

            if (responesToken.IsError)
            {
                apiData.Code = ErrorCodeType.ServerError;
                apiData.SetErrorCodeTypeMsg();
            }
            else
            {
                apiData.Result = responesToken;
            }
            return(Ok(apiData));
        }
예제 #26
0
        public IActionResult GetCategory(int categoryId)
        {
            var resultModel = new ApiResultModel();
            int code;

            try
            {
                var model = db.GetRepository <Category>().Get(q => q.Id == categoryId).FirstOrDefault();
                if (model == null)
                {
                    code        = StatusCodes.Status400BadRequest;
                    resultModel = new ApiResultModel()
                    {
                        message = "Kategori bulunamadı!"
                    };
                }
                else
                {
                    code        = StatusCodes.Status200OK;
                    resultModel = new ApiResultModel()
                    {
                        data = model
                    };
                }
            }
            catch (Exception e)
            {
                code = StatusCodes.Status400BadRequest;
                resultModel.message = "Kategori Detayları alınırken hata oluştu!";
            }
            return(StatusCode(code, resultModel));
        }
예제 #27
0
        /// <summary>Gets API result model.</summary>
        /// <exception cref="HttpResponseException">Thrown when a HTTP Response error condition occurs.</exception>
        /// <typeparam name="T">Generic type parameter.</typeparam>
        /// <param name="getItemCallback">The get item callback.</param>
        /// <returns>The API result model.</returns>
        protected ApiResultModel <T> GetApiResultModel <T>(Func <T> getItemCallback)
        {
            var model = new ApiResultModel <T>();
            const HttpStatusCode statusCode = HttpStatusCode.InternalServerError;

            try
            {
                StartServerWatch();
                model.Result = getItemCallback();
            }
            catch (Exception ex)
            {
                model.Status = "Fail";
                model.Error  = ex;
                model.Time   = StopServerWatchAndGetElapsedTime();

                throw new HttpResponseException(Request.CreateResponse(statusCode, model));
            }
            finally
            {
                model.Server = HttpContext.Current.Server.MachineName;
                model.Time   = StopServerWatchAndGetElapsedTime();
            }
            return(model);
        }
예제 #28
0
 public JsonResult AddUpdateCondition(long conditionID, PatientConditions_Custom condition)
 {
     try
     {
         if (condition.conditionName == null || condition.conditionName == "" || !Regex.IsMatch(condition.conditionName, "^[0-9a-zA-Z ]+$"))
         {
             ApiResultModel apiresult = new ApiResultModel();
             apiresult.message = "Invalid condition name.Only letters and numbers are allowed.";
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
         ConditionRepository objRepo = new ConditionRepository();
         if (conditionID == 0)
         {
             ApiResultModel apiresult = new ApiResultModel();
             apiresult = objRepo.AddCondition(condition);
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
         else
         {
             ApiResultModel apiresult = objRepo.EditCondition(conditionID, condition);
             return(Json(new { Success = true, ApiResultModel = apiresult }));
         }
     }
     catch (Exception ex)
     {
         return(Json(new { Message = ex.Message }));
     }
 }
예제 #29
0
        public ApiResultModel EditGoodsCategory(GoodsCategoryInfoModel model)
        {
            ApiResultModel resultModel = new ApiResultModel();

            try
            {
                //获取当前商家用户
                IShopUserBLL userBll = BLLFactory <IShopUserBLL> .GetBLL("ShopUserBLL");

                T_ShopUser user = userBll.GetEntity(u => u.Id == model.UserId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);
                //如果商家用户存在
                if (user != null)
                {
                    //如果验证Token不通过或已过期
                    if (DateTime.Now > user.TokenInvalidTime || model.Token != user.Token)
                    {
                        resultModel.Msg = APIMessage.TOKEN_INVALID;
                        return(resultModel);
                    }
                    //更新最近登录时间和Token失效时间
                    user.LatelyLoginTime  = DateTime.Now;
                    user.TokenInvalidTime = DateTime.Now.AddDays(Convert.ToInt32(PropertyUtils.GetConfigParamValue("TokenInvalid")));
                    userBll.Update(user);

                    if (model.Id.HasValue)
                    {
                        IGoodsCategoryBLL goodsBLL = BLLFactory <IGoodsCategoryBLL> .GetBLL("GoodsCategoryBLL");

                        if (goodsBLL.Exist(m => m.Name == model.Name && m.Id != model.Id && m.ShopId == model.ShopId))
                        {
                            resultModel.Msg = "该商品类别已经存在";
                        }
                        else
                        {
                            var goodsCategory = goodsBLL.GetEntity(g => g.Id == model.Id.Value);
                            //修改商品分类
                            if (goodsCategory != null)
                            {
                                goodsCategory.Name = model.Name;
                                goodsBLL.Update(goodsCategory);
                            }
                            else
                            {
                                resultModel.Msg = "不存在当前商品分类";
                            }
                        }
                    }
                }
                else
                {
                    resultModel.Msg = APIMessage.NO_USER;
                }
            }
            catch
            {
                resultModel.Msg = APIMessage.REQUEST_EXCEPTION;
            }

            return(resultModel);
        }
예제 #30
0
        public async Task <IActionResult> Check(string key)
        {
            var result = new ApiResultModel <bool>();

            _client = new ClientInfomation(HttpContext);
            var keystore = await _cache.GetAsync(CacheModel.ApiKey + _client.GetClientID());

            if (keystore != null)
            {
                if (Encoding.UTF8.GetString(keystore).Equals(key))
                {
                    result.Data = true;
                    return(Ok(result));
                }
                else
                {
                    result.Notfound();
                    result.Data = false;
                    return(NotFound(result));
                }
            }
            else
            {
                result.Notfound("API key not found");
                return(NotFound(result));
            }
        }