public object POST(AddUserTask Request) { TaskDto task = Request.NewTask; var user = _userBll.GetUser(Request.NewTask.Email); task.UserId = user.UserId; TaskValidations obj = new TaskValidations(); ValidationResult result = obj.Validate(task); if (result.IsValid) { try { var newTask = _taskBll.AddNewTask(task); // var result = _mapper.TaskDtoToTask(newTask); // return CreatedAtAction(nameof(AddNewTask), new { email = user.Email }, result); return(newTask); } catch (Exception e) { // _logger.Error("Exception Thrown", e); throw e; } } else { return("Error"); } }
public async Task <ActionResult <TaskManager.Models.Task> > AddNewTask([FromBody] TaskManager.Models.Task task) { try { var user = _userBll.GetUser(task.Email); task.UserId = user.UserId; var newTask = _taskBll.AddNewTask(_mapper.TaskToTaskDto(task)); var result = _mapper.TaskDtoToTask(newTask); return(CreatedAtAction(nameof(AddNewTask), new { email = user.Email }, result)); } catch (Exception e) { _logger.Error("Exception Thrown", e); throw; } }
public static void Show() { User user = new User() { Name = "张三", Password = "******" }; #region 引入Unity容器,这是一段固定写法 作用是读取当前应用程序运行目录下的Unity.Config配置文件,配置一个容器 //1. 初始化UnityContainer容器 IUnityContainer container = new UnityContainer(); ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); //2. 开始读取配置文件 fileMap.ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "CfgFiles\\Unity.Config"); Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); UnityConfigurationSection configSection = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName); //3.初始化AOP容器 使用配置文件中aopContainer节点下的所有配置信息来初始化container这个AOP容器 configSection.Configure(container, "aopContainer"); //10. 这个aopContainer就是配置文件中的 <container name="aopContainer"> 这里这个容器的名称 ; 注意如果配置文件中的名字和这里的名字不一样就会报出以下错误: // The container named "aopContainer" is not defined in this configuration section. #endregion // 在这里创建对象, 创建的规则就来自于配置文件的 <register type="MyAOP.UnityWay.IUserProcessor,MyAOP" mapTo="MyAOP.UnityWay.UserProcessor,MyAOP"> 这一行; 如果是 IUserProcessor 类型, 就是使用UserProcessor 来创建实例 // < !--04 核心代码 把某一个抽象类型(PrismUnityAop.BLL.IUserBll),所在的DLL(EXE名称),mapTo = (把这个接口映射到完整的类型上)-- > // < !--IOC容器所做的事情正常情况就是把某一个接口映射到具体类型-- > //01 通过容器创建对象 IUserBll processor = container.Resolve <IUserBll>(); //02 调用业务方法 正常情况应该是执行业务方法,但是我们设置了AOP所以会按照Unity配置文件中InterfaceInterceptor的顺序运行 所以是LogBeforeBehavior //02 所以是在LogBeforeBehavior,里的 public IMethodReturn Invoke方法 processor.RegUser(user); //4. 注意, 当程序运行到这里的时候, 正常情况应该是去调用userProcessor的Reguser方法, 但是由于在配置文件中进行了配置, 所以它会去执行 LogBeforeBehavior 的 Invoke的方法(当aopContainer这容器中只有一个LogBeforeBehavior的时候, 如果多个, 则那个方法在前面则优先执行, 其它的上依次的调) User userNew1 = processor.GetUser(user); //调用GetUser的时候, 也会执行配置文件中对应配置了的方法 //演示缓存Behavior User userNew2 = processor.GetUser(user); }
public object POST(EditUserTask Request) { TaskDto task = Request.NewTaskData; var user = _userBll.GetUser(Request.NewTaskData.Email); task.UserId = user.UserId; TaskValidations obj = new TaskValidations(); ValidationResult result = obj.Validate(task); if (result.IsValid) { return(_taskBll.EditTask(Request.NewTaskData)); } else { return("Error"); } }
public UserVM Get([FromQuery] UserVM objeto) { return(_userBll.GetUser(objeto)); }