public virtual async Task <TEntity> Handle(CreateCommandModel <TEntity, TCreate> command, CancellationToken cancellationToken) { var entity = _mapper.Map <TEntity>(command.Request); Repository.Create(entity); return(entity); }
public async Task Create_InvalidModelState_CreatePersonAccomplishmentNeverExecutes() { _controller.ModelState.AddModelError("FoodName", "Name is required"); var personAccomplishment = new CreateCommandModel { BloodValue = 123 }; await _controller.Create(personAccomplishment); _servicMock.Verify(x => x.Create(It.IsAny <CreateCommandModel>()), Times.Never); }
public async Task Create_ModelStateValide_CreateCallOnce() { var createFood = new CreateCommandModel { FoodName = "Pizza", BloodValue = 100 }; _servicMock.Setup(c => c.Create(createFood)).ReturnsAsync(true); var result = await _controller.Create(createFood); _servicMock.Verify(x => x.Create(It.IsAny <CreateCommandModel>()), Times.Once); }
public async Task Create_ModelStateValide_CreateRedirectToIndexActionResult() { var createFood = new CreateCommandModel { FoodName = "Pizza", BloodValue = 100 }; _servicMock.Setup(c => c.Create(createFood)).ReturnsAsync(true); var result = await _controller.Create(createFood); var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Index", redirectToActionResult.ActionName); }
public async Task <IActionResult> Create(CreateCommandModel model) { if (ModelState.IsValid) { model.Name = User.Identity.Name; if (await _service.Create(model)) { _logger.LogInformation("User Created with {1}, {2} and {3}", model.FoodName, model.BloodValue, model.Name); return(RedirectToAction("Index", "Home")); } } ModelState.AddModelError("", "Something went wromg to create database"); _logger.LogError("Unable to create blood logs", model); return(View()); }
public Task <bool> Handle(CreateCommandModel request, CancellationToken cancellationToken) { // 命令验证 if (!request.VerifyData()) { // 错误信息收集 NotifyValidationErrors(request); // 返回,结束当前线程 return(Task.FromResult(false)); } Infrastructure.Entitys.Permission entity = new Infrastructure.Entitys.Permission() { PermissionId = request.PermissionId.ToString(), PermissionName = request.PermissionName, PermissionAction = request.PermissionAction, PermissionType = request.PermissionType.EnumToInt(), PermissionParentId = request.PermissionParentId, IsValid = request.IsValid }; var existingEntity = _REPOSITORY.QueryByNameTypeParentId(entity.PermissionName, entity.PermissionType, entity.PermissionParentId); if (existingEntity != null && !string.IsNullOrWhiteSpace(existingEntity.PermissionId)) { _Bus.RaiseEvent(new DomainNotification("Permission", "权限名称重复!"), "Permission"); return(Task.FromResult(false)); } //提交 if (_REPOSITORY.CreatePermission(entity)) { // 提交成功后,这里需要发布领域事件 // 比如欢迎用户注册邮件呀,短信呀等 _Bus.RaiseEvent(new Domain.Models.EventModels.Permission.CreatePermissionEventModel(entity.PermissionId.StringToGuid(), entity.PermissionName, entity.PermissionType.IntToEnum <Models.CommandModels.Permission.PermissionCommandModel.PermissionTypeEnum>(), entity.PermissionAction, entity.PermissionParentId, entity.IsValid), "Permission"); return(Task.FromResult(true)); } else { _Bus.RaiseEvent(new Notifications.DomainNotification("Permission", "数据写入失败!"), "Permission"); return(Task.FromResult(false)); } }
/// <summary> /// // RegisterStudentCommand命令的处理程序 /// 整个命令处理程序的核心都在这里 /// 不仅包括命令验证的收集,持久化,还有领域事件和通知的添加 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public Task <bool> Handle(CreateCommandModel request, CancellationToken cancellationToken) { // 命令验证 if (!request.VerifyData()) { // 错误信息收集 NotifyValidationErrors(request); // 返回,结束当前线程 return(Task.FromResult(false)); } Infrastructure.Entitys.User entity = new Infrastructure.Entitys.User() { UserId = request.UserId.ToString(), UserName = request.UserName, Email = request.Email, Phone = request.Phone, Password = request.Password, CreateTime = DateTime.Now, CreateName = request.CreateName }; // 判断邮箱是否存在 // 这些业务逻辑,当然要在领域层中(领域命令处理程序中)进行处理 var existingUSER = _REPOSITORY.QueryByName(entity.UserName); if (existingUSER != null) { _Bus.RaiseEvent(new DomainNotification("User", "该用户已存在!"), "User"); return(Task.FromResult(false)); } //提交 if (_REPOSITORY.CreateUser(entity)) { // 提交成功后,这里需要发布领域事件 // 比如欢迎用户注册邮件呀,短信呀等 _Bus.RaiseEvent(new Domain.Models.EventModels.User.CreateUserEventModel(entity.UserId.StringToGuid(), entity.UserName, entity.Password, entity.Email, entity.Phone, entity.CreateName, entity.CreateTime), "User"); return(Task.FromResult(true)); } else { _Bus.RaiseEvent(new Notifications.DomainNotification("User", "数据写入失败!"), "User"); return(Task.FromResult(false)); } }
public async Task <bool> Create(CreateCommandModel model) { var appUser = await _userManager.FindByEmailAsync(model.Name); if (appUser == null) { return(false); } var today = DateTime.Now; var foodInTake = new FoodInTake { Name = model.FoodName, ApplicationUserId = appUser.Id, BloodValue = model.BloodValue, TakeTime = today }; await _context.FoodInTakes.AddAsync(foodInTake); var isCread = await _context.SaveChangesAsync(); if (isCread > -1) { return(true); } return(false); }
public Task <bool> Handle(CreateCommandModel request, CancellationToken cancellationToken) { throw new NotImplementedException(); }