Exemple #1
0
        public Code SearchCode(string stringValue, CodeConverter codeConverter)
        {
            var code      = new Code();
            var seedValue = codeConverter.ConvertFromCode(stringValue);

            code.SeedValue   = seedValue;
            code.StringValue = stringValue;

            Connection.Open();

            using (var command = Connection.CreateCommand())
            {
                command.CommandText = @"
                    SELECT [State] FROM Codes
                    WHERE SeedValue = @seedValue
                ";
                command.Parameters.AddWithValue("@seedValue", code.SeedValue);
                using (var reader = command.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        code.State = States.ConvertToString((byte)reader["State"]);
                    }
                }
            }

            Connection.Close();
            return(code.State == null ? null : code);
        }
        public IActionResult DeactivateCode([FromRoute] int campaignId, [FromRoute] string code)
        {
            var sql           = new SQL(connectionString: _config.GetConnectionString("Storage"));
            var codeConverter = new CodeConverter(_config.GetSection("Base26")["Alphabet"]);
            var seedValue     = codeConverter.ConvertFromCode(code);

            sql.DeactivateCode(campaignId, seedValue);
            return(Ok());
        }
Exemple #3
0
        public IActionResult RedeemCode([FromRoute] string code)
        {
            var sql           = new SQL(_config.GetConnectionString("SQLConnnection"));
            var codeConverter = new CodeConverter(_config.GetSection("Base26")["Alphabet"]);
            var seedValue     = codeConverter.ConvertFromCode(code);

            sql.CheckIfCodeCanBeRedeemed(seedValue, code);

            return(Ok());
        }
        public IActionResult RedeemCode([FromRoute] string code, [FromBody] string email)
        {
            var sql           = new SQL(connectionString: _config.GetConnectionString("Storage"));
            var codeConverter = new CodeConverter(_config.GetSection("Base26")["Alphabet"]);
            var seedValue     = codeConverter.ConvertFromCode(code);
            var isRedeemed    = sql.RedeemCode(seedValue, email);

            if (isRedeemed)
            {
                return(Ok());
            }
            return(BadRequest());
        }