コード例 #1
0
        static void Main(string[] args)
        {
            SoftUniContext ctx         = new SoftUniContext();
            var            departments = ctx.Departments
                                         .Where(d => d.Employees.Count > 5)
                                         .OrderBy(d => d.Employees.Count)
                                         .ToArray();

            StringBuilder sb = new StringBuilder();

            foreach (var d in departments)
            {
                var managerName = d.Manager.FirstName;

                sb.AppendFormat("{0} {1}{2}", d.Name, managerName, Environment.NewLine);

                foreach (var e in d.Employees)
                {
                    sb.AppendFormat("{0} {1} {2}{3}", e.FirstName, e.LastName, e.JobTitle, Environment.NewLine);
                }
            }

            File.WriteAllText("../../out.txt", sb.ToString());
        }
        public static void Main()
        {
            var context   = new SoftUniContext();
            var employees = context.Employees
                            .Where(a => a.EmployeeId == 147)
                            .Select(e => new
            {
                Name = e.FirstName + " " + e.LastName,
                e.JobTitle,
                Projects = e.EmployeesProjects.Select(p => new
                {
                    ProjectName = p.Project.Name
                }).OrderBy(x => x.ProjectName)
            });

            foreach (var employee in employees)
            {
                Console.WriteLine($"{employee.Name} - {employee.JobTitle}");
                foreach (var project in employees.Select(e => e.Projects))
                {
                    Console.WriteLine(string.Join(Environment.NewLine, project.Select(a => a.ProjectName)));
                }
            }
        }
コード例 #3
0
        static void Main(string[] args)
        {
            using (var dbContext = new SoftUniContext())
            {
                var departments = dbContext.Departments
                                  .Where(d => d.Employees.Count() > 5)
                                  .OrderBy(d => d.Employees.Count())
                                  .ThenBy(d => d.Name)
                                  .Select(d => new
                {
                    DepartmentName = d.Name,
                    ManagerName    = d.Manager.FirstName + " " + d.Manager.LastName,
                    EmployeeInfo   = d.Employees.Select(s => new
                    {
                        s.FirstName,
                        s.LastName,
                        s.JobTitle
                    })
                                     .OrderBy(s => s.FirstName)
                                     .ThenBy(x => x.LastName)
                })
                                  .ToArray();

                foreach (var d in departments)
                {
                    Console.WriteLine($"{d.DepartmentName} - {d.ManagerName}");

                    foreach (var e in d.EmployeeInfo)
                    {
                        Console.WriteLine($"{e.FirstName} {e.LastName} - {e.JobTitle}");
                    }

                    Console.WriteLine("----------");
                }
            }
        }
        public static void Main()
        {
            SoftUniContext dbContext = new SoftUniContext();

            using (dbContext)
            {
                var employees = dbContext
                                .Employees
                                .Select(e => new
                {
                    e.FirstName,
                    e.LastName,
                    e.MiddleName,
                    e.JobTitle,
                    e.Salary
                })
                                .ToList();

                foreach (var emp in employees)
                {
                    Console.WriteLine($"{emp.FirstName} {emp.LastName} {emp.MiddleName} {emp.JobTitle} {emp.Salary:F2}");
                }
            }
        }
コード例 #5
0
        public static void Main()
        {
            using (var context = new SoftUniContext())
            {
                var employees = context.Employees
                                .Where(e => e.EmployeesProjects
                                       .Any(ep => ep.Project.StartDate.Year >= 2001 && ep.Project.StartDate.Year <= 2003))
                                .Select(e => new
                {
                    EmployeeName = e.FirstName + " " + e.LastName,
                    ManagerName  = e.Manager.FirstName + " " + e.Manager.LastName,
                    Projects     = e.EmployeesProjects.Select(s => new
                    {
                        ProjectName = s.Project.Name,
                        StartDate   = s.Project.StartDate,
                        EndDate     = s.Project.EndDate
                    }).ToArray()
                })
                                .Take(30)
                                .ToArray();

                using (StreamWriter sw = new StreamWriter("../SoftUniData.txt"))
                {
                    foreach (var e in employees)
                    {
                        sw.WriteLine($"{e.EmployeeName} - Manager: {e.ManagerName}");

                        foreach (var p in e.Projects)
                        {
                            sw.WriteLine($"--{p.ProjectName} - {p.StartDate.ToString("M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture)} " +
                                         $"- {p.EndDate?.ToString("M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture) ?? "not finished"}");
                        }
                    }
                }
            }
        }
コード例 #6
0
        public static string GetEmployeesFullInformation(SoftUniContext context)
        {
            var sb = new StringBuilder();

            var employees = context.Employees
                            .Select(e => new
            {
                Id   = e.EmployeeId,
                Name = $"{e.FirstName} {e.MiddleName} {e.LastName}",
                e.JobTitle,
                e.Salary
            })
                            .OrderBy(e => e.Id)
                            .ToList();

            foreach (var employee in employees)
            {
                sb.AppendLine($"{employee.Name} {employee.JobTitle} {employee.Salary:F2}");
            }

            return(sb
                   .ToString()
                   .TrimEnd());
        }
コード例 #7
0
        public static string IncreaseSalaries(SoftUniContext context)
        {
            var sb = new StringBuilder();

            string[] departmentsToSearchFor = new[] { "Engineering", "Tool Design", "Marketing" };
            using (context)
            {
                //this is the variant where it updates the Database too
                var results = context.Employees
                              .Where(x => departmentsToSearchFor.Contains(x.Department.Name));
                foreach (var employee in results)
                {
                    employee.Salary = employee.Salary * 12 / 100 + employee.Salary;
                }
                context.SaveChanges();

                foreach (var item in results.ToList())
                {
                    sb.AppendLine(item.FirstName + item.LastName + item.Salary);
                }
            }

            return(sb.ToString().TrimEnd());
        }
コード例 #8
0
        public static void Main()
        {
            var context = new SoftUniContext();

            var project   = context.Projects.Find(2);
            var employees = context.Employees;

            foreach (var employee in employees)
            {
                employee.Projects.Remove(project);
            }

            context.SaveChanges();

            context.Projects.Remove(project);
            context.SaveChanges();

            var projects = context.Projects.Take(10);

            foreach (var pr in projects)
            {
                Console.WriteLine(pr.Name);
            }
        }
コード例 #9
0
        private static void DepartmentsWithMoreThan5Employees()
        {
            using (var db = new SoftUniContext())
            {
                var departments = db.Departments
                                  .Include(d => d.Employees)
                                  .Where(d => d.Employees.Count > 5)
                                  .OrderBy(d => d.Employees.Count)
                                  .ThenBy(d => d.Name)
                                  .ToList();

                foreach (var dept in departments)
                {
                    Console.WriteLine($"{dept.Name} - {dept.Manager.FirstName} {dept.Manager.LastName}");

                    foreach (var e in dept.Employees.OrderBy(e => e.FirstName).ThenBy(e => e.LastName))
                    {
                        Console.WriteLine($"{e.FirstName} {e.LastName} - {e.JobTitle}");
                    }

                    Console.WriteLine("----------");
                }
            }
        }
コード例 #10
0
        private static void Employee147()
        {
            using (var db = new SoftUniContext())
            {
                var employee = db.Employees
                               .Include(e => e.EmployeesProjects)
                               .ThenInclude(ep => ep.Project)
                               .Select(e => new
                {
                    e.EmployeeId,
                    e.FirstName,
                    e.LastName,
                    e.JobTitle,
                    e.EmployeesProjects
                })
                               .FirstOrDefault(e => e.EmployeeId == 147);

                Console.WriteLine($"{employee.FirstName} {employee.LastName} - {employee.JobTitle}");
                foreach (var proj in employee.EmployeesProjects.Select(ep => ep.Project).OrderBy(p => p.Name))
                {
                    Console.WriteLine(proj.Name);
                }
            }
        }
コード例 #11
0
        private static void RemoveTowns()
        {
            using (var db = new SoftUniContext())
            {
                string townName        = Console.ReadLine();
                var    townToRemove    = db.Towns.SingleOrDefault(t => t.Name == townName);
                var    addressesInTown = db.Addresses
                                         .Include(a => a.Town)
                                         .Include(a => a.Employees)
                                         .Where(a => a.Town.Name == townName)
                                         .ToList();

                int addressesCount = addressesInTown.Count();

                foreach (var addr in addressesInTown)
                {
                    var employeesOnThisAddress = addr.Employees
                                                 .ToList();

                    foreach (var empl in employeesOnThisAddress)
                    {
                        empl.AddressId = null;
                    }

                    db.Addresses.Remove(addr);
                }

                db.Towns.Remove(townToRemove);
                db.SaveChanges();

                string addressPluralization = addressesCount == 1 ? "address" : "addresses";
                string toBePluralization    = addressesCount == 1 ? "was" : "were";

                Console.WriteLine($"{addressesCount} {addressPluralization} in {townName} {toBePluralization} deleted");
            }
        }
コード例 #12
0
        public static string GetLatestProjects(SoftUniContext context)
        {
            StringBuilder stringBuilder = new StringBuilder();

            var projects = context.Projects
                           .OrderByDescending(p => p.StartDate)
                           .Take(10)
                           .OrderBy(p => p.Name)
                           .Select(p => new
            {
                p.Name,
                p.Description,
                p.StartDate
            })
                           .ToList();

            foreach (var project in projects)
            {
                stringBuilder.AppendLine(project.Name);
                stringBuilder.AppendLine(project.Description);
                stringBuilder.AppendLine(project.StartDate.ToString("M/d/yyyy h:mm:ss tt"));
            }
            return(stringBuilder.ToString().TrimEnd());
        }
コード例 #13
0
        public static string GetAddressesByTown(SoftUniContext context)
        {
            StringBuilder stringBuilder = new StringBuilder();
            var           addresses     = context.Addresses
                                          .OrderByDescending(a => a.Employees.Count)
                                          .ThenBy(t => t.Town.Name)
                                          .ThenBy(a => a.AddressText)
                                          .Select(a => new
            {
                AddressText   = a.AddressText,
                TownName      = a.Town.Name,
                EmployeeCount = a.Employees.Count
            })
                                          .Take(10)
                                          .ToList();

            foreach (var address in addresses)
            {
                stringBuilder.AppendLine($"{address.AddressText}, {address.TownName} - " +
                                         $"{address.EmployeeCount} employees");
            }

            return(stringBuilder.ToString().TrimEnd());
        }
コード例 #14
0
        public static void Main()
        {
            string townForDelete = Console.ReadLine();

            SoftUniContext dbContext = new SoftUniContext();

            using (dbContext)
            {
                Town           town      = dbContext.Towns.FirstOrDefault(t => t.Name == townForDelete);
                List <Address> addresses = dbContext
                                           .Addresses
                                           .Where(a => a.TownId == town.TownId)
                                           .ToList();

                foreach (Employee emp in dbContext.Employees)
                {
                    if (addresses.Contains(emp.Address))
                    {
                        emp.Address = null;
                    }
                }

                dbContext.Addresses.RemoveRange(addresses);
                dbContext.Towns.Remove(town);
                dbContext.SaveChanges();

                if (addresses.Count == 1)
                {
                    Console.WriteLine($"1 address in {townForDelete} was deleted");
                }
                else
                {
                    Console.WriteLine($"{addresses.Count} addresses in {townForDelete} was deleted");
                }
            }
        }
コード例 #15
0
        public static string GetEmployeesWithSalaryOver50000(SoftUniContext context)
        {
            var sb = new StringBuilder();

            using (context)
            {
                var result = context.Employees
                             .Select(x => new
                {
                    Name   = x.FirstName,
                    Salary = x.Salary
                })
                             .Where(x => x.Salary > 50000)
                             .OrderBy(x => x.Name)
                             .ToList();

                foreach (var VARIABLE in result)
                {
                    sb.AppendLine($"{VARIABLE.Name} - {VARIABLE.Salary:F2}");
                }
            }

            return(sb.ToString().TrimEnd());
        }
コード例 #16
0
        public static void Main()
        {
            using (var db = new SoftUniContext())
            {
                var departments = db.Departments
                                  .Select(d => new
                {
                    d.Name,
                    ManagerFirstName          = d.Manager.FirstName,
                    ManagerLastName           = d.Manager.LastName,
                    EmployeesNamesAndPosition = d.Employees
                                                .Select(e => new
                    {
                        e.FirstName,
                        e.LastName,
                        e.JobTitle
                    }).ToList()
                })
                                  .Where(d => d.EmployeesNamesAndPosition.Count > 5)
                                  .OrderBy(d => d.EmployeesNamesAndPosition.Count)
                                  .ThenBy(d => d.Name)
                                  .ToList();

                foreach (var department in departments)
                {
                    Console.WriteLine($"{department.Name} - {department.ManagerFirstName} {department.ManagerLastName}");

                    foreach (var employee in department.EmployeesNamesAndPosition.OrderBy(e => e.FirstName).ThenBy(e => e.LastName))
                    {
                        Console.WriteLine($"{employee.FirstName} {employee.LastName} - {employee.JobTitle}");
                    }

                    Console.WriteLine("----------");
                }
            }
        }
コード例 #17
0
        public static string GetEmployeesFromResearchAndDevelopment(SoftUniContext context)
        {
            var sb = new StringBuilder();

            using (context)
            {
                var result = context.Employees
                             .Where(x => x.Department.Name == "Research and Development")
                             .Select(x => new
                {
                    FirstName = x.FirstName,
                    LastName  = x.LastName,
                    Salary    = x.Salary
                }).OrderBy(x => x.Salary).ThenBy(x => x.FirstName).ToList();


                foreach (var item in result)
                {
                    sb.AppendLine($"{item.FirstName} {item.LastName} Research and Development - ${item.Salary:F2}");
                }
            }

            return(sb.ToString().TrimEnd());
        }
コード例 #18
0
        public static void Main()
        {
            using (var db = new SoftUniContext())
            {
                var employees = db.Employees
                                .Include(emp => emp.Departments)
                                .Select(e => new
                {
                    e.FirstName,
                    e.LastName,
                    e.Salary,
                    DepartmentName = e.Department.Name
                })
                                .Where(dep => dep.DepartmentName == "Research and Development")
                                .OrderBy(e => e.Salary)
                                .ThenByDescending(e => e.FirstName)
                                .ToList();

                foreach (var employee in employees)
                {
                    Console.WriteLine($"{employee.FirstName} {employee.LastName} from {employee.DepartmentName} - ${employee.Salary:F2}");
                }
            }
        }
コード例 #19
0
ファイル: P13.cs プロジェクト: GSYankov/SoftUni
        public void Run()
        {
            var db = new SoftUniContext();

            using (db)
            {
                var employees = db.Employees
                                .Where(e => e.FirstName.StartsWith("Sa"))
                                .OrderBy(e => e.FirstName)
                                .ThenBy(e => e.LastName)
                                .Select(e => new
                {
                    e.FirstName,
                    e.LastName,
                    e.JobTitle,
                    e.Salary
                });

                foreach (var e in employees)
                {
                    Console.WriteLine($"{e.FirstName} {e.LastName} - {e.JobTitle} - (${e.Salary:f2})");
                }
            }
        }
コード例 #20
0
        public static string IncreaseSalaries(SoftUniContext context)
        {
            var sb             = new StringBuilder();
            var departments    = new string[] { "Engineering", "Tool Design", "Marketing", "Information Services" };
            var salaryIncrease = 1.12m;

            var employees = context.Employees
                            .Where(e => departments.Contains(e.Department.Name));

            foreach (var employee in employees)
            {
                employee.Salary *= salaryIncrease;
            }

            context.SaveChanges();

            var employeeToPrint = employees
                                  .Select(e => new
            {
                e.FirstName,
                e.LastName,
                e.Salary
            })
                                  .OrderBy(e => e.FirstName)
                                  .ThenBy(e => e.LastName)
                                  .ToList();

            foreach (var employee in employeeToPrint)
            {
                sb.AppendLine($"{employee.FirstName} {employee.LastName} {employee.Salary:F2}");
            }

            return(sb
                   .ToString()
                   .TrimEnd());
        }
コード例 #21
0
        private static void P10DepartmentsMore5Emp(SoftUniContext context)
        {
            using (context)
            {
                var departments = context.Departments
                                  .Where(x => x.Employees.Count > 5)
                                  .OrderBy(x => x.Employees.Count)
                                  .ThenBy(x => x.Name)
                                  .Select(x => new
                {
                    DepName     = x.Name,
                    ManagerName = x.Manager.FirstName + " " + x.Manager.LastName,
                    Employees   = x.Employees
                                  .Select(e => new
                    {
                        e.FirstName,
                        e.LastName,
                        e.JobTitle
                    })
                                  .OrderBy(v => v.FirstName)
                                  .ThenBy(v => v.LastName)
                })

                                  .ToArray();

                foreach (var d in departments)
                {
                    Console.WriteLine($"{d.DepName} - {d.ManagerName}");
                    foreach (var e in d.Employees)
                    {
                        Console.WriteLine($"{e.FirstName} {e.LastName} - {e.JobTitle}");
                    }
                    Console.WriteLine("----------");
                }
            }
        }
コード例 #22
0
        public static string RemoveTown(SoftUniContext context)
        {
            var addressIdsToRemove = context.Addresses
                                     .Where(a => a.Town.Name == "Seattle")
                                     .Select(a => a.AddressId)
                                     .ToList();

            var employees = context.Employees
                            .ToList();

            foreach (var id in addressIdsToRemove)
            {
                foreach (var emp in employees)
                {
                    emp.AddressId = null;
                }
            }

            var addressesToRemove = context.Addresses
                                    .Where(a => a.Town.Name == "Seattle")
                                    .ToList();

            foreach (var address in addressesToRemove)
            {
                context.Addresses.Remove(address);
            }

            var townToRemove = context.Towns
                               .FirstOrDefault(t => t.Name == "Seattle");

            context.Towns.Remove(townToRemove);

            context.SaveChanges();

            return($"{addressesToRemove.Count} addresses in Seattle were deleted");
        }
コード例 #23
0
        private static string ExtractEmployeeFromDepartment(SoftUniContext db, string department)
        {
            var employees = db
                            .Employees
                            .Where(e => e.Department.Name == department)
                            .OrderBy(e => e.Salary)
                            .ThenByDescending(e => e.FirstName)
                            .Select(e => new
            {
                Name = $"{e.FirstName} {e.LastName}",
                e.Salary,
                DepartmentName = e.Department.Name
            });

            var sb = new StringBuilder();

            foreach (var employee in employees)
            {
                sb.AppendLine($"{employee.Name} from " +
                              $"{employee.DepartmentName} - ${employee.Salary:F2}");
            }

            return(sb.ToString().TrimEnd());
        }
コード例 #24
0
 public static void Run()
 {
     using (SoftUniContext context = new SoftUniContext())
     {
         var employees = context.Employees.Where(x => x.EmployeesProjects.Any(p => p.Project.StartDate.Year >= 2001 && p.Project.StartDate.Year <= 2003))
                         .Select(x => new
         {
             employeeName = x.FirstName + " " + x.LastName,
             managerName  = x.Manager.FirstName + " " + x.Manager.LastName,
             projects     = x.EmployeesProjects.Select(p => new
             {
                 projectName = p.Project.Name,
                 startDate   = p.Project.StartDate,
                 endDate     = p.Project.EndDate
             }).ToArray()
         })
                         .Take(30)
                         .ToArray();
         using (StreamWriter sw = new StreamWriter("../../../EmployeesAndProjects.txt"))
         {
             foreach (var e in employees)
             {
                 sw.WriteLine($"{e.employeeName} - Manager: {e.managerName}");
                 foreach (var p in e.projects)
                 {
                     var endDate = p.endDate.ToString();
                     if (endDate == "")
                     {
                         endDate = "not finished";
                     }
                     sw.WriteLine($"--{p.projectName} - {p.startDate.ToString("M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture)} - {p.endDate?.ToString("M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture) ?? "not finished"}");
                 }
             }
         }
     }
 }
コード例 #25
0
ファイル: StartUp.cs プロジェクト: em0enev/C-DB-Fundamentals
        static void Main(string[] args)
        {
            SoftUniContext context = new SoftUniContext();

            Console.WriteLine(DeleteProjectById(context));
        }
コード例 #26
0
 public static void Main(string[] args)
 {
     using var db = new SoftUniContext();
     Console.WriteLine(GetEmployee147(db));
 }
コード例 #27
0
 public CommandInterpreter()
 {
     this.sb      = new StringBuilder();
     this.context = new SoftUniContext();
 }
コード例 #28
0
        static void Main(string[] args)
        {
            using (var db = new SoftUniContext())
            {
                var result = db.Towns
                             .Where(t => t.Name.StartsWith("S"))
                             .Select(t => new
                {
                    t.Name
                })
                             .ToList();

                //var result = db.Towns
                //    .Where(t => t.Name.StartsWith("S"))
                //    .Where(t=>t.TownId > 3)
                //    .Select(t => t.Name)
                //    .ToList();

                foreach (var r in result)
                {
                    Console.WriteLine(r);
                }

                //   var town = db.Towns.ToList();

                //var list = new List<Towns>();
                //list.Where(t => t.Name.StartsWith('1'));

                //db.Towns.Where(t => t.Name.StartsWith('1'));

                //var towns = db.Towns
                //      .Include(t => t.Addresses)
                //      .ToList();

                //var towns = db.Towns
                //      .ToList();

                //  foreach (var town in towns)
                //  {
                //      Console.WriteLine(town.Name);
                //      foreach (var address in town.Addresses)
                //      {
                //          Console.WriteLine($"----- {address.AddressText}"); ;
                //      }

                //  }

                //var town = db.Towns.FirstOrDefault();
                //var entry = db.Entry(town);
                //town.Name = "Ivan";
                //entry = db.Entry(town);

                //db.SaveChanges();

                //var town = new Towns
                //{
                //    Name = "Sofia capital"
                //};
                //db.Towns.Add(town);
                //var entry = db.Entry(town);

                // var towns = db.Towns.ToList();

                //// db.Add(town);
                // db.SaveChanges();

                // foreach (var item in towns)
                // {
                //     Console.WriteLine(item.Name);
                // }
            }
            //using (var db = new SoftUniContext())
            //{
            //    var towns = db.Towns.ToList();
            //    Console.WriteLine(towns.Count);
            //}
        }
コード例 #29
0
        static void Main(string[] args)
        {
            using (var db = new SoftUniContext())
            {
                //03
                //var employees = db.Employees
                //    .Select(e => new
                //    {
                //        Name = $"{e.FirstName} {e.LastName} {e.MiddleName}",
                //        e.JobTitle,
                //        e.Salary
                //    });

                //foreach (var e in employees)
                //{
                //    Console.WriteLine($"{e.Name} {e.JobTitle} {e.Salary:F2}");
                //}

                //04
                //var employees = db.Employees
                //    .Where(e => e.Salary > 50000)
                //    .Select(e => new
                //    {
                //        e.FirstName
                //    })
                //    .OrderBy(e => e.FirstName);

                //foreach (var e in employees)
                //{
                //    Console.WriteLine($"{e.FirstName}");
                //}

                //05
                //var employees = db.Employees
                //    .Where(e => e.Department.Name == "Research and Development")
                //    .OrderBy(e => e.Salary)
                //    .ThenByDescending(e => e.FirstName)
                //    .Select(e => new
                //    {
                //        Name = $"{e.FirstName} {e.LastName}",
                //        DPName = e.Department.Name,
                //        e.Salary
                //    });

                //foreach (var e in employees)
                //{
                //    Console.WriteLine($"{e.Name} from {e.DPName} - {e.Salary:F2}");
                //}

                //06
                //var address = new Address()
                //{
                //    AddressText = "Vitoshka 15",
                //    TownId = 4
                //};

                //var nakov = db.Employees
                //    .Where(e => e.LastName == "Nakov")
                //    .FirstOrDefault();

                //nakov.Address = address;
                //db.SaveChanges();

                //var result = db.Employees
                //    .OrderByDescending(a => a.AddressId)
                //    .Take(10)
                //    .Select(a => a.Address.AddressText);

                //foreach (var r in result)
                //{
                //    Console.WriteLine($"{r}");
                //}

                //07
                //var data = db.Employees
                //    .Where(e =>
                //    e.EmployeesProjects.Any(ep => ep.Project.StartDate.Year >= 2001 &&
                //    ep.Project.StartDate.Year <= 2003))
                //    .Take(30)
                //    .Select(e => new
                //    {
                //        Name = $"{e.FirstName} {e.LastName}",
                //        MName = $"{e.Manager.FirstName} {e.Manager.LastName}",
                //        Projects = e.EmployeesProjects.Select(ep => new
                //        {
                //            ep.Project.Name,
                //            ep.Project.StartDate,
                //            ep.Project.EndDate
                //        })
                //    });

                //foreach (var employee in data)
                //{
                //    Console.WriteLine($"{employee.Name} - Manager: {employee.MName}");

                //    foreach (var project in employee.Projects)
                //    {
                //        Console.Write($"--{project.Name} - {project.StartDate} - ");

                //        if (project.EndDate == null)
                //        {
                //            Console.WriteLine("not finished");
                //        }
                //        else
                //        {
                //            Console.WriteLine($"{project.EndDate}");
                //        }
                //    }
                //}

                //08
                //var data = db.Addresses.OrderByDescending(x => x.Employees.Count)
                //    .ThenBy(x => x.Town.Name)
                //    .ThenBy(x => x.AddressText)
                //    .Select(x => new
                //    {
                //        x.AddressText,
                //        x.Town.Name,
                //        x.Employees.Count
                //    })
                //    .Take(10);

                //foreach (var item in data)
                //{
                //    Console.WriteLine($"{item.AddressText}, {item.Name} - {item.Count} employees");
                //}

                //09
                //var employee = db.Employees
                //    .Where(e => e.EmployeeId == 147)
                //    .Select(e => new
                //    {
                //        Name = $"{e.FirstName} {e.LastName}",
                //        e.JobTitle,
                //        Projects = e.EmployeesProjects.Select(ep => new
                //        {
                //            ep.Project.Name
                //        })
                //    });

                //foreach (var e in employee)
                //{
                //    Console.WriteLine($"{e.Name} - {e.JobTitle}");

                //    var orderedProjects = e.Projects.OrderBy(x => x.Name);

                //    foreach (var p in orderedProjects)
                //    {
                //        Console.WriteLine($"{p.Name}");
                //    }
                //}

                //10
                //var data = db.Departments
                //    .Where(x => x.Employees.Count() > 5)
                //    .Select(x => new
                //    {
                //        EmpCount = x.Employees.Count(),
                //        DepName = x.Name,
                //        MName = $"{x.Manager.FirstName} {x.Manager.LastName}",
                //        EmpS = x.Employees.Select(y => new
                //        {
                //            y.FirstName,
                //            y.LastName,
                //            y.JobTitle
                //        }
                //      )
                //      .OrderBy(y => y.FirstName)
                //      .ThenBy(y => y.LastName)
                //    })
                //    .OrderBy(x => x.EmpCount)
                //    .ThenBy(x => x.DepName);

                //foreach (var dep in data)
                //{
                //    Console.WriteLine($"{dep.DepName} - {dep.MName}");

                //    foreach (var e in dep.EmpS)
                //    {
                //        Console.WriteLine($"{e.FirstName} {e.LastName} - {e.JobTitle}");
                //    }

                //    Console.WriteLine(new string('-', 10));
                //}

                //11
                //var data = db.Projects
                //    .OrderByDescending(x => x.StartDate)
                //    .Take(10)
                //    .Select(x => new
                //    {
                //        x.Name,
                //        x.Description,
                //        StartDate = x.StartDate.ToString("M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture)
                //    })
                //    .OrderBy(x => x.Name);

                //foreach (var item in data)
                //{
                //    Console.WriteLine(item.Name);
                //    Console.WriteLine(item.Description);
                //    Console.WriteLine(item.StartDate);
                //}

                //12
                //var selectedEmployees = db.Employees
                //    .Where(e => e.Department.Name == "Engineering"
                //    || e.Department.Name == "Tool Design"
                //    || e.Department.Name == "Marketing "
                //    || e.Department.Name == "Information Services");

                //foreach (var e in selectedEmployees)
                //{
                //    e.Salary *= 1.12M;
                //}

                //db.SaveChanges();

                //var orderedEmps = selectedEmployees
                //    .Select(e => new
                //    {
                //        e.FirstName,
                //        e.LastName,
                //        e.Salary
                //    })
                //.OrderBy(e => e.FirstName)
                //.ThenBy(e => e.LastName);

                //foreach (var e in orderedEmps)
                //{
                //    Console.WriteLine($"{e.FirstName} {e.LastName} (${e.Salary:F2})");
                //}

                //13
                //var selectedEmployees = db.Employees
                //    .Where(e => e.FirstName.StartsWith("Sa"))
                //    .Select(e => new
                //    {
                //        e.FirstName,
                //        e.LastName,
                //        e.JobTitle,
                //        e.Salary
                //    })
                //    .OrderBy(e => e.FirstName)
                //    .ThenBy(e => e.LastName);

                //foreach (var e in selectedEmployees)
                //{
                //    Console.WriteLine($"{e.FirstName} {e.LastName} - {e.JobTitle} - (${e.Salary:F2})");
                //}

                //14
                //int idOfProjectToDelete = 2;

                //var employeesProjectsToDelete = db.EmployeesProjects.Where(x => x.ProjectId == idOfProjectToDelete);
                //var projectToDelete = db.Projects.Where(x => x.ProjectId == idOfProjectToDelete).SingleOrDefault();

                //db.EmployeesProjects.RemoveRange(employeesProjectsToDelete);
                //db.Projects.Remove(projectToDelete);
                //db.SaveChanges();

                //var updatedProjects = db.Projects.Take(10);

                //foreach (var pr in updatedProjects)
                //{
                //    Console.WriteLine(pr.Name);
                //}

                //15
                //var townToRemove = Console.ReadLine();
                //var town = db.Towns
                //    .Include(t => t.Addresses)
                //    .SingleOrDefault(t => t.Name == townToRemove);

                //var adressCount = 0;

                //if (town != null)
                //{
                //    adressCount = town.Addresses.Count;

                //    db.Employees
                //        .Where(e => e.AddressId != null && town.Addresses.Any(a => a.AddressId == e.AddressId))
                //        .ToList()
                //        .ForEach(e => e.Address = null);

                //    db.SaveChanges();

                //    db.Addresses.RemoveRange(town.Addresses);
                //    db.Towns.Remove(town);
                //    db.SaveChanges();
                //}

                //Console.WriteLine($"{adressCount} address in {townToRemove} was deleted");
            }
        }
コード例 #30
0
 public GameService(SoftUniContext context) : base(context)
 {
 }