public OpenRouletteResponse Execute(OpenRouletteRequest request)
        {
            var searchedRoulette = _repository.Find(id: request.RouletteId);

            if (searchedRoulette == null)
            {
                return(new OpenRouletteResponse("Esta ruleta no se encuentra registrada o abierta"));
            }
            switch (searchedRoulette.State)
            {
            case "Abierta":

                return(new OpenRouletteResponse(message: "Esta ruleta ya se encuentra abierta"));

            case "Cerrada":

                return(new OpenRouletteResponse(
                           message: $"Ruleta {request.RouletteId} ya se encuentra cerrada. Por favor cree una nueva."));
            }
            var roulette = new Roulette(repository: _repository)
            {
                Id = request.RouletteId
            };

            roulette.Open();

            return(new OpenRouletteResponse(message: $"Ruleta {roulette.State}"));
        }
Example #2
0
        public CreateRouletteResponse Execute()
        {
            var newRouletteId = (_repository.Find().Count + 1).ToString();
            var newRoulette   = new Roulette(_repository)
            {
                Id = newRouletteId
            };

            _repository.Insert(newRoulette);
            return(new CreateRouletteResponse($"Ruleta con ID {newRouletteId} creada satisfactoriamente", newRouletteId));
        }
Example #3
0
        public CloseRouletteResponse Execute(CloseRouletteRequest request)
        {
            var searchedRoulette = _repository.Find(id: request.RouletteId);

            if (searchedRoulette == null)
            {
                return(new CloseRouletteResponse("Esta ruleta no se encuentra registrada o abierta", null));
            }

            if (searchedRoulette.State != "Abierta")
            {
                return(new CloseRouletteResponse(message: "Esta ruleta ya se encuentra Cerrada", winners: null));
            }
            searchedRoulette.Repository = _repository;
            var winners = searchedRoulette.Close();

            return(new CloseRouletteResponse(message: $"Ruleta {searchedRoulette.State}. Numero ganador: {searchedRoulette.WinnerNumber}, color ganador:  {searchedRoulette.WinnerColor}", winners: winners));
        }
        public BetByColorResponse Execute(BetByColorRequest request, string clientId)
        {
            var searchedRoulette = _repository.Find(id: request.RouletteId);

            if (searchedRoulette == null)
            {
                return(new BetByColorResponse(message: "Esta ruleta no se encuentra abierta"));
            }

            if (request.Color != "Rojo" && request.Color != "Negro")
            {
                return(new BetByColorResponse(message: "Por favor ingrese un color valido"));
            }
            var bet = new BetByColor {
                Amount = request.Amount, Color = request.Color, ClientIdentification = clientId
            };

            searchedRoulette.Repository = _repository;
            var betResult = searchedRoulette.AddBetByColor(bet);

            return(betResult ? new BetByColorResponse(message: $"Apuesta a color {bet.Color} por valor de ${bet.Amount} realizada satisfactoriamente")
                : new BetByColorResponse(message: "El valor de la apuesta debe ser un valor valido ($1 a $10.000)"));
        }
Example #5
0
 public SearchRouletteResponse Execute()
 {
     return(new SearchRouletteResponse(roulettes: _repository.Find()));
 }