public ActionResult <SlotResponse> CalculateWin([FromForm] decimal amount)
        {
            /*var slotUser = _slotMachineService.Get(name);*/
            var slotUser = _slotMachineService.Get(GetUserId());

            if (slotUser == null)
            {
                return(NotFound("User not found"));
            }
            if (slotUser.Balance < amount)
            {
                return(BadRequest("Not enough balance"));
            }

            var configData = _configService.Get("5fede93d67fed1af36bfc647");

            if (configData == null)
            {
                return(NotFound());
            }

            int[] bet = new int[configData.ArraySize];

            Random randNum = new Random();

            for (int i = 0; i < bet.Length; i++)
            {
                bet[i] = randNum.Next(0, 10);
            }

            int winAmount = bet[0];
            int prev      = bet[0];

            for (int i = 1; i < bet.Length; i++)
            {
                if (bet[i] == prev)
                {
                    winAmount += bet[0];
                }
                else
                {
                    break;
                }
            }

            decimal finalWin = winAmount * amount;


            var finalResponse = new SlotResponse();

            finalResponse.Balance   = slotUser.Balance - amount + finalWin;
            finalResponse.spinArray = bet;
            finalResponse.UserId    = slotUser.UserId;
            finalResponse.WinAmount = finalWin;

            slotUser.Balance = slotUser.Balance - amount + finalWin;
            _slotMachineService.Update(slotUser.UserId, slotUser);

            return(finalResponse);
        }
 private static Resource FindSlot(TempAddAppointmentRequest request, SlotResponse slots)
 {
     return(slots.entry
            .Select(e => e.resource)
            .Where(r => r.resourceType == "Slot")
            .First(s =>
                   s.start >= request.Start.Subtract(new TimeSpan(0, 0, 1)) &&
                   s.end <= request.End.AddSeconds(1)));
 }
        private static string GetLocaationId(SlotResponse slots, string scheduleId)
        {
            var locationId = slots.entry.Select(e => e.resource)
                             .Where(r => r.resourceType == "Schedule")
                             .First(s => s.id == scheduleId)
                             .actor.First(a => a.reference.StartsWith("Location/")).reference;

            return(locationId);
        }