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()); }