private static void SetEmployeeNumberOfTeams(Array teams, Random generator, JsonEmployee employee, int teamMembersCount) { var employeeTeams = new HashSet <string>(); for (int currentTeamPosition = 0; currentTeamPosition < teamMembersCount; ++currentTeamPosition) { AddRandomTeam(teams, generator, employeeTeams); } employee.Teams = employeeTeams; }
private static JsonEmployee FillEmployeeData(Random generator, string[] employeesFromFile, int currentRowNumber) { JsonEmployee employee = new JsonEmployee(); employee.Id = currentRowNumber; string[] employeeInfo = employeesFromFile[currentRowNumber].Split('\t'); employee.Name = employeeInfo[0]; employee.Surname = employeeInfo[1]; employee.Email = employeeInfo[2]; employee.Age = generator.Next(employeeMinimumAge, employeeMaximumAge); return(employee); }
private static List <JsonEmployee> GetJsonEmployees(string[] employeesFromFile) { var employees = new List <JsonEmployee>(); for (int index = 0; index < employeesFromFile.Length; index++) { JsonEmployee employee = FillEmployeeData(generator, employeesFromFile, index); SetEmployeeRole(roles, generator, index, employee); SetEmployeeTeams(teams, generator, index, employee); employees.Add(employee); } return(employees); }
static void Main(string[] args) { string[] roles = new string[] { "Junior Developer", "Semi Senior Developer", "Senior Developer", "Principal", "Team Leader" }; string[] teams = new string[] { "Platform", "Sales", "Billing", "Mirage" }; var generator = new Random(); var all_lines_in_file = File.ReadAllLines("employees.txt").ToArray(); var employees = new List <JsonEmployee>(); for (int i = 0; i < all_lines_in_file.Length; i++) { JsonEmployee e = new JsonEmployee(); e.Id = i; e.Name = all_lines_in_file[i].Split('\t')[0]; e.SurName = all_lines_in_file[i].Split('\t')[1]; e.Email = all_lines_in_file[i].Split('\t')[2]; e.Age = generator.Next(18, 66); if (i < 11) { e.Role = "Manager"; e.Teams = new List <string>(); } else { e.ManagerId = generator.Next(11); e.Role = roles[generator.Next(4)]; int count = generator.Next(1, 4); var employeeTeams = new List <string>(); for (int j = 0; j < count; ++j) { employeeTeams.Add(teams[generator.Next(4)]); } e.Teams = employeeTeams; } employees.Add(e); } var jsonFile = File.CreateText("employees.json"); jsonFile.WriteLine("["); for (int i = 0; i < employees.Count; ++i) { var jsonEmployee = employees[i]; string str = "{{\"Id\":{7},\"ManagerId\":{0},\"Age\":{1},\"Teams\":[{2}],\"Role\":\"{3}\",\"Email\":\"{4}\",\"SurName\":\"{5}\",\"Name\":\"{6}\"}}"; if (i != employees.Count - 1) { str += ","; } var formattedEmployeed = string.Format(str, jsonEmployee.ManagerId.HasValue ? jsonEmployee.ManagerId.ToString() : "null", jsonEmployee.Age, string.Join(",", jsonEmployee.Teams.Select(x => "\"" + x + "\"")), jsonEmployee.Role, jsonEmployee.Email, jsonEmployee.SurName, jsonEmployee.Name, jsonEmployee.Id); jsonFile.WriteLine(formattedEmployeed); } jsonFile.WriteLine("]"); jsonFile.Flush(); }
private static void SetEmployeeTeams(Array teams, Random generator, int index, JsonEmployee employee) { if (index <= firstTenEmployees) { employee.Teams = new HashSet <string>(); } else { int teamMembersCount = GetNumberOfTeamMembers(generator); SetEmployeeNumberOfTeams(teams, generator, employee, teamMembersCount); } }
private static void SetRandomRole(Array roles, Random generator, JsonEmployee employee) { var currentRole = (Enumerations.RoleKeyValues)roles.GetValue(generator.Next(roles.Length)); employee.Role = Enum.GetName(typeof(Enumerations.RoleKeyValues), currentRole); }
private static void SetEmployeeRole(Array roles, Random generator, int index, JsonEmployee employee) { if (index <= firstTenEmployees) { employee.Role = managerPosition; } else { employee.ManagerId = generator.Next(numberOfRandomManagerIds); SetRandomRole(roles, generator, employee); } }