public Task <Unit> Handle(DeleteOneCustomerDietCommand request, CancellationToken cancellationToken) { // 命令验证 if (!request.IsValid()) { // 错误信息收集 NotifyValidationErrors(request);//主要为验证的信息 // 返回,结束当前线程 return(Task.FromResult(new Unit())); } //获取食谱 var existingCustomerDiet = _customerDietRepository.GetById(request.OID); if (existingCustomerDiet == null) { //引发错误事件 Bus.RaiseEvent(new DomainNotification("", "食谱不存在")); return(Task.FromResult(new Unit())); } //上一条操作与下一条操作时间间隔至少30秒钟 //var supporterOperateLastestDiet = _customerDietRepository.GetSupporterOperateLastestDiet(request.LastOperate.Oid); //if (supporterOperateLastestDiet != null && supporterOperateLastestDiet.LastOperate.Time.AddSeconds(30) > DateTime.Now) //{ // //引发错误事件 // TimeSpan ts = (supporterOperateLastestDiet.LastOperate.Time.AddSeconds(30) - DateTime.Now); // Bus.RaiseEvent(new DomainNotification("", "休息一下吧," + ts.Seconds + "秒后,再试!")); // return Task.FromResult(new Unit()); //} //更新食谱信息 existingCustomerDiet.UpdateDiscard(request.Discard, request.LastOperate); //判断是否存在需要加入到不喜欢列表中 if (request.DislikeList != null) { foreach (var dislikeFood in request.DislikeList) { if (_customerDislikeFoodRepository.GetCustomerDislikeFood(existingCustomerDiet.CustomerOid, dislikeFood.FoodOid) == null) { CustomerDislikeFood customerDislikeFood = new CustomerDislikeFood( Guid.NewGuid(), existingCustomerDiet.CustomerOid, dislikeFood.FoodOid, request.LastOperate.Oid, DateTime.Now ); _customerDislikeFoodRepository.Add(customerDislikeFood); } } } if (Commit()) { // 提交成功后,这里可以发布领域事件,比如短信通知 } return(Task.FromResult(new Unit())); }
public Task <Unit> Handle(CreateOneCustomerDislikeFoodCommand request, CancellationToken cancellationToken) { // 命令验证 if (!request.IsValid()) { // 错误信息收集 NotifyValidationErrors(request);//主要为验证的信息 // 返回,结束当前线程 return(Task.FromResult(new Unit())); } //验证食材 if (request.DislikeFoodList.Count <= 0) { //引发错误事件 Bus.RaiseEvent(new DomainNotification("", "食材不能空")); return(Task.FromResult(new Unit())); } //上一条操作与下一条操作时间间隔至少30秒钟 //var supporterOperateLastestDislikeFood = _customerDislikeFoodRepository.GetSupporterOperateLastestDislikeFood(request.OperaterOid); //if (supporterOperateLastestDislikeFood != null && supporterOperateLastestDislikeFood.CreateTime.AddSeconds(30) > DateTime.Now) //{ // //引发错误事件 // TimeSpan ts = (supporterOperateLastestDislikeFood.CreateTime.AddSeconds(30) - DateTime.Now); // Bus.RaiseEvent(new DomainNotification("", "休息一下吧," + ts.Seconds + "秒后,再试!")); // return Task.FromResult(new Unit()); //} foreach (var dislikeFoodOid in request.DislikeFoodList) { var existingDislikeFood = _customerDislikeFoodRepository.GetCustomerDislikeFood(request.CustomerOid, dislikeFoodOid); if (existingDislikeFood == null) { CustomerDislikeFood customerDislikeFood = new CustomerDislikeFood( Guid.NewGuid(), request.CustomerOid, dislikeFoodOid, request.OperaterOid, DateTime.Now ); _customerDislikeFoodRepository.Add(customerDislikeFood); } else { existingDislikeFood = _customerDislikeFoodRepository.GetById(existingDislikeFood.OID); existingDislikeFood.UpdateCreateTime(DateTime.Now); } } if (Commit()) { // 提交成功后,这里可以发布领域事件,比如短信通知 } return(Task.FromResult(new Unit())); }