public JsonResult MakeCupOfCoffee(RequestCoffeeLog requestCoffeeLog)
        {
            CoffeeDeviceState coffeeDeviceState = GetCurrentUserCoffeeDeviceState(requestCoffeeLog.AppUserId);

            if (coffeeDeviceState != null)
            {
                if (IsResourcesAmountEnough(coffeeDeviceState))
                {
                    CoffeeLog coffeeLog = RequestCoffeeLogToCoffeeLog(requestCoffeeLog);
                    _coffeeRepository.MakeCupOfCoffee(coffeeLog);
                    return(new JsonResult(new { message = "ok", coffeDeviceState = GetCurrentUserCoffeeDeviceState(requestCoffeeLog.AppUserId) }));
                }
                else
                {
                    _coffeeRepository.UpdateCoffeSeviceState(requestCoffeeLog.AppUserId);
                    return(new JsonResult(new { message = "error", coffeDeviceState = GetCurrentUserCoffeeDeviceState(requestCoffeeLog.AppUserId) }));
                }
            }
            else
            {
                return(new JsonResult(new
                {
                    message = "error",
                }));
            }
        }
 private CoffeeLog RequestCoffeeLogToCoffeeLog(RequestCoffeeLog requestCoffeeLog)
 {
     return(new CoffeeLog()
     {
         Id = Guid.NewGuid(),
         CoffeeDeviceId = _coffeeRepository.GetCoffeeDeviceByUserId(requestCoffeeLog.AppUserId).Id,
         CoffeeTypeId = requestCoffeeLog.CoffeeTypeId,
         Date = requestCoffeeLog.DateTime.AddHours(3),
         HowOftenId = requestCoffeeLog.HowOftenId,
         IsRepeatable = requestCoffeeLog.HowOftenId == 1 ? false : true
     });
 }