public async Task <IActionResult> SaveOrder([FromBody] OrderRequest request)
        {
            var employeeId = int.Parse(User.FindFirstValue("id"));

            var ingredients = await _drinkService.GetDrinkIngredientByIdAsync(request.DrinkId);

            var drinkRequest = new DrinkRequest(
                ingredients.Select(i => new DrinkRequest.Ingredient(
                                       i.Ingredient.Name,
                                       request.GetIngredientAmountOrDefault(i.DrinkIngredientId, i.Amount)
                                       )),
                request.Mug
                );

            await _coffeeMachine.MakeDrink(drinkRequest);

            await _preferenceService.SavePreferenceAsync(new PreferenceDto {
                EmployeeId = employeeId,
                DrinkId    = request.DrinkId,
                Amounts    = request.Amounts,
                Mug        = request.Mug
            });

            return(Ok(true));
        }
Esempio n. 2
0
        public override Task <DrinkReply> MakeDrink(DrinkRequest request, ServerCallContext context)
        {
            var drink = Domain.Drink.MakeDrink((Domain.DrinkType)request.Type, (Domain.DrinkFlavor)request.Flavor, (Domain.DrinkSize)request.Size);

            return(Task.FromResult(new DrinkReply {
                DrinkId = drink.Id.ToString()
            }));
        }
        public async Task <Drink> GetDrinkById(int drinkId)
        {
            var requestParams = new DrinkRequest
            {
                UserId  = "test",
                DrinkId = drinkId
            };
            var result = await ServiceProvider.Client.getDrinkByIdAsync(requestParams);

            return(result);
        }
Esempio n. 4
0
        private static IRestResponse PostDrinks(DrinkRequest drinkRequest)
        {
            var client  = new RestClient("https://dryck.co/api/1.0/units/collector1/drinks");
            var request = new RestRequest(Method.POST);

            request.AddHeader("content-type", "application/x-www-form-urlencoded");
            request.AddParameter("application/x-www-form-urlencoded",
                                 $"item={drinkRequest.Drinks.Name}&user={drinkRequest.User}&quantity={drinkRequest.Drinks.Quantity}", ParameterType.RequestBody);
            var response = client.Execute(request);

            return(response);
        }
Esempio n. 5
0
        public Domain.Models.Response AddDrinks(DrinkRequest drinkRequest)
        {
            var response = PostDrinks(drinkRequest);

            if (!response.IsSuccessful)
            {
                return(new Response($"Tyvärr kunde jag inte lägga till {drinkRequest.Drinks.Quantity} stycken {drinkRequest.Drinks.Quantity}."));
            }
            var postDrinkResponse = SimpleJson.SimpleJson.DeserializeObject <PostDrinkResponse>(response.Content);

            return(new Response($"Bra där! Nu finns det {postDrinkResponse.quantity} av {postDrinkResponse.item}."));
        }
Esempio n. 6
0
        public Domain.Models.Response TakeDrinks(DrinkRequest drinkRequest)
        {
            var response = PostDrinks(drinkRequest);

            if (!response.IsSuccessful)
            {
                return(new Response("Kunde tyvärr inte servera dig."));
            }
            var postDrinkResponse = SimpleJson.SimpleJson.DeserializeObject <PostDrinkResponse>(response.Content);

            return(new Response($"Njut av drycken nu. Så du vet återstår det nu {postDrinkResponse.quantity} av {postDrinkResponse.item}."));
        }
        public void TakeDrink_HappyCase()
        {
            var drinkRequest = new DrinkRequest
            {
                Drinks = new Drink
                {
                    Name     = "Pepsi Max",
                    Quantity = 1
                },
                User = "******"
            };

            _sut.TakeDrinks(drinkRequest);
        }
Esempio n. 8
0
        public Response GetResult(DrinkRequest request)
        {
            switch (request.EnumType)
            {
            case EnumType.ADD:
                return(AddDrinks(request));

            case EnumType.TAKE:
                return(TakeDrinks(request));

            case EnumType.STATUS:
                return(GetDrinkStatus());

            default:
                return(new Response("Hittar inte vad du vill göra. Försök igen."));
            }
        }
Esempio n. 9
0
 public Response AddDrink(DrinkRequest drinkRequest)
 {
     return(_repository.AddDrinks(drinkRequest));
 }
Esempio n. 10
0
 public Response TakeDrink(DrinkRequest drinkRequest)
 {
     drinkRequest.Drinks.Quantity = -drinkRequest.Drinks.Quantity;
     return(_repository.TakeDrinks(drinkRequest));
 }
Esempio n. 11
0
 private Response TakeDrinks(DrinkRequest request)
 {
     return(_service.TakeDrink(request));
 }
Esempio n. 12
0
 private Response AddDrinks(DrinkRequest request)
 {
     return(_service.AddDrink(request));
 }