Пример #1
0
        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;
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }
Пример #5
0
 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);
     }
 }
Пример #6
0
        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);
        }
Пример #7
0
 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);
     }
 }