private List <Employee> GenerateFakeEmployees(int employeesToGenerate) { var userGenerator = new EmployeeDataGenerator <Employee>(employeesToGenerate); var managers = new Dictionary <string, Manager>(); var employees = new List <Employee>(); foreach (var emp in userGenerator.Employees) { if (!managers.ContainsKey(emp.Department)) { var manager = new Manager { Id = emp.Id, FirstName = emp.FirstName, LastName = emp.LastName, Department = emp.Department, DoB = emp.DoB, JobTitle = JobTitles.Manager }; managers.Add(manager.Department, manager); employees.Add(manager); } else { employees.Add(emp); managers[emp.Department].Employees.Add(emp.Id); var empNotes = userGenerator.GenerateNotes(4, emp.Id); managers[emp.Department].EmployeeNotes.AddRange(empNotes); } } return(employees); }
public static async Task <IActionResult> Run( [HttpTrigger( AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest request, IBinder binder, ILogger log) { GenerateBogusDataFileRequest requestData; try { string requestBody = await new StreamReader(request.Body).ReadToEndAsync(); requestData = JsonConvert.DeserializeObject <GenerateBogusDataFileRequest>( requestBody, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }); } catch (Exception e) { return(new BadRequestObjectResult(e.Message)); }; var data = EmployeeDataGenerator.GenerateData(requestData.SampleSize); using (var fileStream = await binder.BindAsync <TextWriter>( new BlobAttribute( $"file-drop/{requestData.FileName}.json", FileAccess.Write) { Connection = "AzureWebJobsStorage" })) { fileStream.Write( JsonConvert.SerializeObject( data, Formatting.Indented, new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() })); } return(new OkObjectResult($"File created with {data.Count} records with name {requestData.FileName}.json")); }