public IActionResult CreateCampaign([FromBody] CreateCampaignRequest request)
        {
            if (request.NumberOfCodes >= 1 && request.NumberOfCodes <= 3000)
            {
                var sql        = new SQL(connectionString: _config.GetConnectionString("Storage"));
                var codeReader = new CodeReader(fileUrl: _config.GetSection("FileUrls")["SeedBlobUrl"]);

                var campaign = new Campaign()
                {
                    Name = request.Name,
                    Size = request.NumberOfCodes
                };

                // Get the last offset position
                var prevAndNextOffset = sql.UpdateOffset(campaign.Size);

                // Read from the file
                var codes = codeReader.GenerateCodesFromFile(prevAndNextOffset);

                // Create the campaign and insert the codes
                sql.CreateCampaign(campaign, codes);
                return(Ok(campaign));
            }

            return(BadRequest());
        }