private IActionResult HandleGenericException(Exception ex) { var exception = ex.InnerException ?? ex; ErrorResultModel errorResultModel = null; if (showFriendlyError) { errorResultModel = new ErrorResultModel { Message = "Internal server error" }; } else { errorResultModel = new ErrorResultModel() { Message = exception.Message, StackTrace = exception.StackTrace }; } return(new ObjectResult(errorResultModel) { StatusCode = 500, DeclaredType = typeof(ErrorResultModel) }); }
/// <summary> /// 删除学年表 (逻辑删除) /// </summary> /// <param name="IDs"></param> /// <returns></returns> public BaseResultModel <int> DeleteAcademicYear(List <Guid?> IDs) { SuccessResultModel <int> result = new SuccessResultModel <int>(); ErrorResultModel <int> error = new ErrorResultModel <int>(); try { List <AcademicYearInputModel> delList = new List <AcademicYearInputModel>(); foreach (Guid?item in IDs) { delList.Add(new AcademicYearInputModel() { AcademicYearID = item, IsDelete = true }); } result.Data = this.AcademicYearRepository.UpdateWithKeys(delList.ToArray()); if (result.Data == 0) { error.ErrorCode = EnumErrorCode.业务执行失败; error.ErrorMessage = "请确认需要删除的数据!"; return(error); } return(result); } catch (Exception ex) { LogWriter.WriteLog(EnumLogLevel.Fatal, "DeleteAcademicYear", JsonConvert.SerializeObject(IDs), "AcademicYear", "删除学年表 (逻辑删除)异常!", ex); error.ErrorCode = EnumErrorCode.系统异常; error.ErrorMessage = "删除学年表 (逻辑删除)异常!"; return(error); } }
/// <summary> /// 新增、修改学年表 /// </summary> /// <param name="model"></param> /// <returns></returns> public BaseResultModel <AcademicYearOutputModel> ModifyAcademicYear(AcademicYearInputModel model) { SuccessResultModel <AcademicYearOutputModel> result = new SuccessResultModel <AcademicYearOutputModel>(); ErrorResultModel <AcademicYearOutputModel> error = new ErrorResultModel <AcademicYearOutputModel>(); try { if (model.AcademicYearID.IsNullOrEmpty()) { result.Data = this.AcademicYearRepository.InsertAndReturn(model); } else { result.Data = this.AcademicYearRepository.UpdateWithKeysAndReturn(model); } return(result); } catch (Exception ex) { LogWriter.WriteLog(EnumLogLevel.Fatal, "ModifyAcademicYear", JsonConvert.SerializeObject(model), "AcademicYear", "新增、修改学年表异常!", ex); error.ErrorCode = EnumErrorCode.系统异常; error.ErrorMessage = "新增、修改学年表异常!"; return(error); } }
/// <summary> /// 删除模块表 (逻辑删除) /// </summary> /// <param name="IDs"></param> /// <returns></returns> public BaseResultModel <int> DeleteModel(List <Guid?> IDs) { SuccessResultModel <int> result = new SuccessResultModel <int>(); ErrorResultModel <int> error = new ErrorResultModel <int>(); try { ModelOutputModel selModel = new ModelOutputModel(); ModelInputModel inputModel = new ModelInputModel(); TransactionOptions option = new TransactionOptions(); option.IsolationLevel = IsolationLevel.ReadCommitted; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, option)) { foreach (Guid?item in IDs) { selModel = this.ModelRepository.SelectWithKeys(new ModelModel() { ModelID = item }); inputModel = new ModelInputModel() { ModelID = selModel.ModelID, ModelCode = selModel.ModelCode, IsDelete = true }; result.Data = this.ModelDetailRepository.UpdateWithModel(new ModelDetailModel() { IsDelete = true }, new ModelDetailModel() { ModelID = selModel.ModelID }); result.Data = this.ModelRepository.UpdateWithKeys(inputModel); this.ModelRepository.DelDBTable(inputModel); } scope.Complete(); } if (result.Data == 0) { error.ErrorCode = EnumErrorCode.业务执行失败; error.ErrorMessage = "请确认需要删除的数据!"; return(error); } return(result); } catch (Exception ex) { LogWriter.WriteLog(EnumLogLevel.Fatal, "DeleteModel", JsonConvert.SerializeObject(IDs), "Model", "删除模块表 (逻辑删除)异常!", ex); error.ErrorCode = EnumErrorCode.系统异常; error.ErrorMessage = "删除模块表 (逻辑删除)异常!"; return(error); } }
/// <summary> /// 删除模块明细表 (逻辑删除) /// </summary> /// <param name="IDs"></param> /// <returns></returns> public BaseResultModel <int> DeleteModelDetail(List <Guid?> IDs) { SuccessResultModel <int> result = new SuccessResultModel <int>(); ErrorResultModel <int> error = new ErrorResultModel <int>(); try { ModelDetailViewModel selDetailModel = new ModelDetailViewModel(); ModelOutputModel selModel = new ModelOutputModel(); TransactionOptions option = new TransactionOptions(); option.IsolationLevel = IsolationLevel.ReadCommitted; foreach (Guid?item in IDs) { using (this.ModelDetailRepository.BeginSelView()) { selDetailModel = this.ModelDetailRepository.SelectWithViewModel(new ModelDetailViewModel() { ModelDetailID = item, }); } if (this.ModelDetailRepository.ListDynamicTableListByPer(selDetailModel)) { error.ErrorCode = EnumErrorCode.业务执行失败; error.ErrorMessage = "该数据字段已有业务数据,不可删除"; return(error); } selDetailModel.IsDelete = true; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, option)) { result.Data = this.ModelDetailRepository.UpdateWithKeys(selDetailModel); this.ModelDetailRepository.DropDynamicTableCol(selDetailModel); scope.Complete(); } } if (result.Data == 0) { error.ErrorCode = EnumErrorCode.业务执行失败; error.ErrorMessage = "请确认需要删除的数据!"; return(error); } return(result); } catch (Exception ex) { LogWriter.WriteLog(EnumLogLevel.Fatal, "DeleteModelDetail", JsonConvert.SerializeObject(IDs), "ModelDetail", "删除模块明细表 (逻辑删除)异常!", ex); error.ErrorCode = EnumErrorCode.系统异常; error.ErrorMessage = "删除模块明细表 (逻辑删除)异常!"; return(error); } }
public ObjectResult ErrorResult(Exception ex) { logger.LogInformation($"Process ErrorResult with Exception"); var error = new ErrorResultModel { Errors = new List <ErrorModel> { new ErrorModel { Code = "InternalServerError", Description = ex.Message } } }; return(ErrorResult(error)); }
/// <summary> /// 处理异常 /// </summary> /// <param name="actionContext"></param> protected override void HandleUnauthorizedRequest(HttpActionContext actionContext) { base.HandleUnauthorizedRequest(actionContext); var response = actionContext.Response = actionContext.Response ?? new HttpResponseMessage(); response.StatusCode = HttpStatusCode.Forbidden;//Http 403 var content = new ErrorResultModel <string>(); content.Data = "Server denied access: you have no permission or be offline"; content.ErrorCode = this.ErrorCode; content.ErrorMessage = this.ErrorMessage; JsonSerializerSettings settings = new JsonSerializerSettings(); settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); response.Content = new StringContent(JsonConvert.SerializeObject(content, settings), Encoding.UTF8, "application/json"); }
/// <summary> /// 返回错误格式 /// </summary> /// <param name="context"></param> /// <param name="statusCode"></param> /// <param name="msg"></param> /// <returns></returns> private Task HandleExceptionAsync(HttpContext context, int statusCode, string msg) { ErrorResultModel errorModel = new ErrorResultModel() { Message = msg, Code = statusCode, RequestUri = context.Request.GetAbsoluteUri() }; BaseLogModel logModel = new BaseLogModel() { ServiceName = _logOptions.ServiceName, Type = 4, Content = msg }; //增加到日志 _log.Info <BaseLogModel>(logModel); var result = JsonConvert.SerializeObject(new { error = errorModel }); context.Response.ContentType = "application/json;charset=utf-8"; return(context.Response.WriteAsync(result)); }
/// <summary> /// 重写OnExceptionAsync方法,定义自己的处理逻辑 /// </summary> /// <param name="context"></param> /// <returns></returns> public Task OnExceptionAsync(ExceptionContext context) { // 如果异常没有被处理则进行处理 if (context.ExceptionHandled == false) { // 定义返回类型 var result = new ErrorResultModel <object> { ErrorCode = "40000", ErrorMessage = context.Exception.Message }; context.Result = new ContentResult { // 返回状态码设置为200,表示成功 StatusCode = StatusCodes.Status200OK, // 设置返回格式 ContentType = "application/json;charset=utf-8", Content = JsonConvert.SerializeObject(result) }; } // 设置为true,表示异常已经被处理了 context.ExceptionHandled = true; return(Task.CompletedTask); }
private IActionResult ReturnError(Exception ex) { var error = new ErrorResultModel(ex.Message, ex.StackTrace); return(StatusCode(500, JsonConvert.SerializeObject(error))); }
public ObjectResult ErrorResult(ErrorResultModel errorResultModel) { logger.LogInformation($"Process ErrorResult with ErrorResultModel"); return(StatusCode(HttpStatusCode.InternalServerError, errorResultModel)); }
/// <summary> /// 新增、修改模块明细表 /// </summary> /// <param name="model"></param> /// <returns></returns> public BaseResultModel <ModelDetailOutputModel> ModifyModelDetail(ModelDetailInputModel model) { SuccessResultModel <ModelDetailOutputModel> result = new SuccessResultModel <ModelDetailOutputModel>(); ErrorResultModel <ModelDetailOutputModel> error = new ErrorResultModel <ModelDetailOutputModel>(); try { ModelOutputModel selModel = this.ModelRepository.SelectWithModel(new ModelModel() { ModelID = model.ModelID }); if (selModel == null) { return(new ErrorResultModel <ModelDetailOutputModel>(EnumErrorCode.参数校验未通过, "明细表对应的模块项目不存在!")); } ModelDetailViewModel selDetailModel = new ModelDetailViewModel(); using (this.ModelDetailRepository.BeginSelView()) { selDetailModel = this.ModelDetailRepository.SelectWithViewModel(new ModelDetailViewModel() { ModelID = model.ModelID, ColName = model.ColName }); } if (selDetailModel != null) { if (model.ModelDetailID.IsNullOrEmpty()) { return(new ErrorResultModel <ModelDetailOutputModel>(EnumErrorCode.参数校验未通过, "名称已存在!")); } else if (selDetailModel.ModelDetailID != model.ModelDetailID) { return(new ErrorResultModel <ModelDetailOutputModel>(EnumErrorCode.参数校验未通过, "名称已存在!")); } } selDetailModel = new ModelDetailViewModel(); selDetailModel.ModelCode = selModel.ModelCode; selDetailModel.ColName = model.ColName; selDetailModel.ColType = model.ColType; TransactionOptions option = new TransactionOptions(); option.IsolationLevel = IsolationLevel.ReadCommitted; using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, option)) { if (model.ModelDetailID.IsNullOrEmpty()) { result.Data = this.ModelDetailRepository.InsertAndReturn(model); this.ModelDetailRepository.AddDynamicTableCol(selDetailModel); } else { result.Data = this.ModelDetailRepository.UpdateWithKeysAndReturn(model); this.ModelDetailRepository.ModifyDynamicTableCol(selDetailModel); } scope.Complete(); } return(result); } catch (Exception ex) { LogWriter.WriteLog(EnumLogLevel.Fatal, "ModifyModelDetail", JsonConvert.SerializeObject(model), "ModelDetail", "新增、修改模块明细表异常!", ex); return(new ErrorResultModel <ModelDetailOutputModel>(EnumErrorCode.系统异常, "新增、修改模块明细表异常!")); } }