public Meal(string mealName, Price price, ImageDish imageDish) { MealName = mealName; Price = price; ImageDish = imageDish; AddDomainEvent(new CreateMealEvent(DateTime.Now, nameof(EventMessage.CREATED_MEAL))); }
public async Task <Result> Handle(CreateMealCommand request, CancellationToken cancellationToken) { var price = Price.Create(request.Price); var url = ImageDish.Create(request.Url); if (price.Failure || url.Failure) { throw new GroceryException(price.Error, url.Error); } var meal = new Meal(request.MealName, price.Value, url.Value); await _repository.Add(meal); await _domainEventDispatcher.DispatchAsync(meal.DomainEvents.ToArray()); return(Result.Ok(meal)); }
public async Task <Result> Handle(UpdateMealCommand request, CancellationToken cancellationToken) { var price = Price.Create(request.Price); var url = ImageDish.Create(request.Url); if (price.Failure || url.Failure) { throw new GroceryException(price.Error, url.Error); } var meal = new Meal(request.MealName, price.Value, url.Value); meal.SetId(request.MealId); await _repository.Update(meal); return(Result.Ok()); }
public void SetImageDish(ImageDish imageDish) { ImageDish = imageDish; }