コード例 #1
0
ファイル: Meal.cs プロジェクト: OpsOwns/GroceryExpressCart
 public Meal(string mealName, Price price, ImageDish imageDish)
 {
     MealName  = mealName;
     Price     = price;
     ImageDish = imageDish;
     AddDomainEvent(new CreateMealEvent(DateTime.Now, nameof(EventMessage.CREATED_MEAL)));
 }
コード例 #2
0
        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));
        }
コード例 #3
0
        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());
        }
コード例 #4
0
ファイル: Meal.cs プロジェクト: OpsOwns/GroceryExpressCart
 public void SetImageDish(ImageDish imageDish)
 {
     ImageDish = imageDish;
 }