public static void Main(string[] args)
SoftUniContext context = new SoftUniContext();
var result = GetEmployee147(context);
Console.WriteLine(result);
public static string GetEmployeesFullInformation(SoftUniContext context)
StringBuilder sb = new StringBuilder();
result = String.Join(" ", e.FirstName, e.LastName, e.MiddleName, e.JobTitle),
foreach (var e in employees)
sb.AppendLine($"{e.result} {e.Salary:f2}");
return sb.ToString().TrimEnd();
public static string GetEmployeesWithSalaryOver50000(SoftUniContext context)
StringBuilder sb = new StringBuilder();
.Where(e => e.Salary > 50000)
foreach (var emp in employees)
sb.AppendLine($"{emp.Name} - {emp.Salary:f2}");
return sb.ToString().TrimEnd();
public static string GetEmployeesFromResearchAndDevelopment(SoftUniContext context)
StringBuilder sb = new StringBuilder();
.Where(e => e.Department.Name == "Research and Development")
.ThenByDescending(e => e.FirstName)
result = String.Join(" ", e.FirstName, e.LastName),
DepartmentName = e.Department.Name,
foreach (var emp in employees)
sb.AppendLine($"{emp.result} from {emp.DepartmentName} - ${emp.Salary:f2}");
return sb.ToString().TrimEnd();
public static string AddNewAddressToEmployee(SoftUniContext context)
StringBuilder sb = new StringBuilder();
Address address = new Address()
AddressText = "Vitoshka 15",
.First(e => e.LastName == "Nakov");
var result = context.Employees
.OrderByDescending(e => e.AddressId)
foreach (var adresstext in result)
sb.AppendLine(adresstext.AddressText);
return sb.ToString().TrimEnd();
public static string GetEmployeesInPeriod(SoftUniContext context)
StringBuilder sb = new StringBuilder();
.Where(e => e.EmployeesProjects
.Any(ep => ep.Project.StartDate.Year >= 2001 && ep.Project.StartDate.Year <= 2003))
ManagerFirstName = e.Manager.FirstName,
ManagerLastName = e.Manager.LastName,
Projects = e.EmployeesProjects.Select(ep => new
foreach (var emp in employees)
sb.AppendLine($"{emp.FirstName} {emp.LastName} - Manager: {emp.ManagerFirstName} {emp.ManagerLastName}");
foreach (var ep in emp.Projects)
var endDate = ep.EndDate?.ToString("M/d/yyyy h:mm:ss tt") ?? "not finished";
sb.AppendLine($"--{ep.Name} - {ep.StartDate.ToString("M/d/yyyy h:mm:ss tt")} - {endDate}");
return sb.ToString().TrimEnd();
public static string GetAddressesByTown(SoftUniContext context)
StringBuilder sb = new StringBuilder();
.OrderByDescending(a => a.Employees.Count)
.ThenBy(a => a.Town.Name)
.ThenBy(a => a.AddressText)
count = a.Employees.Count
foreach (var address in employees)
sb.AppendLine($"{address.AddressText}, {address.town} - {address.count} employees");
return sb.ToString().TrimEnd();
public static string GetEmployee147(SoftUniContext context)
StringBuilder sb = new StringBuilder();
.Where(e => e.EmployeeId == 147)
Projects = e.EmployeesProjects.Select(ep => ep.Project.Name.OrderBy(p => p).ToArray())
foreach (var emp in employee)
sb.AppendLine($"{emp.FirstName} {emp.LastName} - {emp.JobTitle}");
foreach (var ep in emp.Projects)
sb.Append(String.Join(Environment.NewLine, ep.ToString()));
return sb.ToString().TrimEnd();