示例#1
0
        public static Employee FindByKey(object key)
        {
            var context = new SoftUniEntities();

            Employee emp = context.Employees.Find(key);
            return emp;
        }
示例#2
0
        public static void Delete(Employee employee)
        {
            var context = new SoftUniEntities();

            context.Employees.Remove(employee);
            context.SaveChanges();
        }
示例#3
0
        public static void Add(Employee emlpoyee)
        {
            var context = new SoftUniEntities();

            context.Employees.Add(emlpoyee);
            context.SaveChanges();
        }
示例#4
0
        public static void Main(string[] args)
        {
            var db = new SoftUniEntities();

            ////Problem 02
            //var today = DateTime.Now;
            //var testEmployee = new Employee
            //{
            //    FirstName = "Test",
            //    MiddleName = "Test",
            //    LastName = "Test",
            //    JobTitle = "Test",
            //    DepartmentID = 1,
            //    HireDate = today,
            //    Salary = 1000
            //};

            //ManageEmployeesDao.InsertEmployee(db, testEmployee);
            //ManageEmployeesDao.DeleteEmployee(db, "Test", "Test", "Test");
            //ManageEmployeesDao.ModifyEmployee(db, 298, "FirstName", "Pesho");
            //ManageEmployeesDao.PrintEmployee(db, 298);

            ////Problem 03
            //ManageEmployeesDao.FindEmployeesStartDateInYear(db, new DateTime(2012, 01, 01));

            //Problem 04
            //ManageEmployeesDao.FindEmployeesStartDateInYearNativeSql(db, new DateTime(2012, 01, 01));

            //Problem 05
            ManageEmployeesDao.FindEmployeesByDepartmentAndManager(db, "Production", "Jo", "Brown");
        }
 public static void Main()
 {
     var db = new SoftUniEntities();
     var departments =
         db.Departments.Where(d => d.Employees.Count > 5).OrderBy(d => d.Employees.Count).Select(d => new
         {
             DepartmentName = d.Name,
             MName = d.Employee.FirstName + " " + d.Employee.LastName,
             Employees = d.Employees.Select(e => new
             {
                 e.FirstName,
                 e.LastName,
                 e.HireDate,
                 e.JobTitle
             })
                 .ToList()
         })
         .ToList();
     foreach (var department in departments)
     {
         Console.WriteLine("-- {0} - Manager: {1}, Employees: {2}",
             department.DepartmentName, department.MName, department.Employees.Count);
         //Uncomment this if you want to see all employees in the current department
         //foreach (var employee in department.Employees)
         //{
         //    Console.WriteLine(employee.FirstName+" "+employee.LastName);
         //}
     }
 }
示例#6
0
 public static void Modify(int id, string firstName)
 {
     var db = new SoftUniEntities();
     Employee employee = db.Employees.Find(id);
     employee.FirstName=firstName;
     db.SaveChanges();
 }
示例#7
0
 public static void Delete(int id)
 {
     var db = new SoftUniEntities();
     Employee employee = db.Employees.Find(id);
     db.Employees.Remove(employee);
     db.SaveChanges();
 }
示例#8
0
        public static void Add(Employee emlpoyee)
        {
            var context = new SoftUniEntities();

            context.Employees.Add(emlpoyee);
            context.SaveChanges();
        }
示例#9
0
        public static void Delete(Employee employee)
        {
            var context = new SoftUniEntities();

            context.Employees.Remove(employee);
            context.SaveChanges();
        }
示例#10
0
        public static void DeleteEmployee(SoftUniEntities db, string firstName, string middleName, string lastName)
        {
            Employee employeeToDelete =
                db.Employees.First(e => e.FirstName == firstName && e.MiddleName == middleName && e.LastName == lastName);

            db.Employees.Remove(employeeToDelete);
            db.SaveChanges();
        }
示例#11
0
        public static Employee FindByKey(object key)
        {
            var context = new SoftUniEntities();

            Employee emp = context.Employees.Find(key);

            return(emp);
        }
 public static void Main()
 {
     var db = new SoftUniEntities();
     var projects = db.usp_AllProjectsForGivenEmployee("Kevin", "Brown");
     foreach (var project in projects)
     {
         Console.WriteLine(project.Name + ", " + project.Description + ", " + project.StartDate);
     }
 }
示例#13
0
        public static void PrintEmployee(SoftUniEntities db, int employeeId)
        {
            var employeeToPrint = db.Employees.Find(employeeId);

            foreach (var prop in employeeToPrint.GetType().GetProperties())
            {
                Console.WriteLine("{0} = {1}", prop.Name, prop.GetValue(employeeToPrint, null));
            }
        }
示例#14
0
        private static void PrintNamesWithNativeQuery(SoftUniEntities context)
        {
            string query             = "SELECT e.FirstName FROM dbo.Employees e JOIN dbo.EmployeesProjects ep ON ep.EmployeeID = e.EmployeeID JOIN dbo.Projects p ON p.ProjectID = ep.ProjectID GROUP BY e.FirstName, p.StartDate HAVING YEAR(p.StartDate) = 2002";
            var    nativeQueryResult = context.Database.SqlQuery <string>(query);

            foreach (var item in nativeQueryResult)
            {
                Console.WriteLine(item);
            }
        }
 public static void Main()
 {
     var db = new SoftUniEntities();
     var addresses = db.Addresses.OrderByDescending(a => a.Employees.Count).ThenBy(a => a.Town.Name).Take(10);
     foreach (var address in addresses)
     {
         Console.WriteLine("{0}, {1} - {2} employees", address.AddressText, address.Town.Name, address.Employees.Count);
     }
         
 }
 public static void Main()
 {
     var db1 = new SoftUniEntities();
     var db2 = new SoftUniEntities();
     db1.Employees.Find(1).FirstName = "Ivan";
     db2.Employees.Find(1).FirstName = "Gosho";
     db1.SaveChanges();
     db2.SaveChanges();
     //Gosho has overwritten the first name in Employee Table and Ivan was completely ignored.
 }
示例#17
0
        static void CallStoredProcedure(string firstName, string lastName)
        {
            var context = new SoftUniEntities();

            var projects = context.usp_GetProjectsByEmployee(firstName, lastName);
            foreach (var p in projects)
            {
                Console.WriteLine(" {0} - {1}, {2}", p.Name, p.Description, p.StartDate);

            }
        }
示例#18
0
        static void CallStoredProcedure(string firstName, string lastName)
        {
            var context = new SoftUniEntities();

            var projects = context.usp_GetProjectsByEmployee(firstName, lastName);

            foreach (var p in projects)
            {
                Console.WriteLine(" {0} - {1}, {2}", p.Name, p.Description, p.StartDate);
            }
        }
示例#19
0
        public static void FindEmployeesStartDateInYearNativeSql(SoftUniEntities db, DateTime date)
        {
            var          year     = date.Year;
            const string SqlQuery = "SELECT e.FirstName, e.LastName, p.Name, p.StartDate FROM Employees e JOIN EmployeesProjects ep ON e.EmployeeID = ep.EmployeeID JOIN Projects p ON ep.ProjectID = p.ProjectID WHERE p.StartDate BETWEEN ('2002-01-01') AND ('2002-12-31')";

            var employeesWProjectsWStartDateInYear = db.Database.SqlQuery <string>(SqlQuery).ToList();

            foreach (var employee in employeesWProjectsWStartDateInYear)
            {
                Console.WriteLine(employee);
            }
        }
示例#20
0
        public static void ModifyEmployee(SoftUniEntities db, int employeeId, string propertyName, object newValue)
        {
            var employeeToModify = db.Employees.Find(employeeId);

            if (employeeToModify != null)
            {
                employeeToModify.GetType().GetProperty(propertyName).SetValue(employeeToModify, newValue);
                db.SaveChanges();
            }
            else
            {
                Console.WriteLine("No such employee.");
            }
        }
示例#21
0
        private static void PrintNamesWithLINQ(SoftUniEntities context)
        {
            var emps = context.Employees
                       .Where(e => e.Projects.Any(p => p.StartDate.Year == 2002))
                       .Select(e => new
            {
                e.FirstName
            });

            foreach (var e in emps)
            {
                Console.WriteLine(e.FirstName);
            }
        }
示例#22
0
        public static void Add(string firstName, string lastName, string jobTitle, string department, DateTime hireDate, int salary)
        {
            var db = new SoftUniEntities();
            var depName = db.Departments.First(d => d.Name == department.ToString());
            var employee = new Employee()
            {
                FirstName = firstName,
                LastName = lastName,
                JobTitle = jobTitle,
                DepartmentID = depName.DepartmentID,
                HireDate = hireDate,
                Salary = salary
            };

            db.Employees.Add(employee);
            db.SaveChanges();
        }
示例#23
0
        public static void FindEmployeesStartDateInYear(SoftUniEntities db, DateTime date)
        {
            var year = date.Year;

            var employeesWProjectsWStartDateInYear =
                db.Employees.Where(e => e.Projects.Any(p => p.StartDate.Year == year));

            foreach (var employee in employeesWProjectsWStartDateInYear)
            {
                Console.WriteLine("Employee Name: {0} {1}", employee.FirstName, employee.LastName);
                Console.WriteLine("Projects Names: ");
                foreach (var project in employee.Projects)
                {
                    Console.WriteLine("{0}; Start Date: {1}", project.Name, project.StartDate);
                }

                Console.WriteLine();
            }
        }
 public static void Main()
 {
     var db = new SoftUniEntities();
     var employee = db.Employees
         .Where(e => e.EmployeeID == 147)
         .Select(e => new
         {
             e.FirstName,
             e.LastName,
             e.JobTitle,
             Projects = e.Projects.OrderBy(p=>p.Name)
         });
     foreach (var emp in employee)
     {
         Console.WriteLine("{0} {1} - {2}",emp.FirstName,emp.LastName,emp.JobTitle);
         foreach(var projects in emp.Projects)
         {
             Console.WriteLine(projects.Name);
         }
     }
 }
示例#25
0
        public static void FindEmployeesByDepartmentAndManager(
            SoftUniEntities db,
            string departmentName,
            string managerFirstName,
            string managerLastName)
        {
            var manager =
                db.Employees.FirstOrDefault(m => m.FirstName == managerFirstName && m.LastName == managerLastName);
            var employees =
                db.Employees.Where(e => e.Department.Name == departmentName && e.ManagerID == manager.EmployeeID);

            foreach (var employee in employees)
            {
                Console.WriteLine("Employee Name: {0} {1}", employee.FirstName, employee.LastName);
                Console.WriteLine("Department Name: {0}", employee.Department.Name);
                if (manager != null)
                {
                    Console.WriteLine("Manager Name: {0} {1}", manager.FirstName, manager.LastName);
                }
                Console.WriteLine();
            }
        }
 public static void Main()
 {
     var db = new SoftUniEntities();
     var employees = db.Employees
         .Where(e => e.Projects.Any(p => p.StartDate.Year >= 2001 && p.StartDate.Year <= 2003))
         .Select(e => new 
             {
                 e.FirstName,
                 e.LastName,
                 Projects = e.Projects.Where(p => p.StartDate.Year >= 2001 && p.StartDate.Year <= 2003),
                 MFirstName = e.Employee1.FirstName,
                 MLastName = e.Employee1.LastName
             });
     foreach(var employee in employees)
     {
         Console.WriteLine("-- Employee: {0} {1} || Manager: {2} {3}", employee.FirstName, employee.LastName,employee.MFirstName,employee.MLastName);
         foreach(var project in employee.Projects)
         {
             Console.WriteLine("* {0} {1} - {2}", project.Name, project.StartDate, project.EndDate);
         }
         Console.WriteLine();
     }
 }
        static void Main()
        {
            //step 1

            var context = new SoftUniEntities();

            var employeeNames = context.Employees
                .Where(e => e.Salary > 50000)
                .Select(e => e.FirstName);

            var employees =
                from e in context.Employees
                where e.Salary > 50000
                select e.FirstName;

            foreach (var item in employees)
            {
                Console.WriteLine(item);
            }

               // task 3

               //  task 4

            var context = new SoftUniEntities();

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

            Employee employee = context.Employees
                .Where(e => e.LastName == "Nakov")
                .FirstOrDefault();

            employee.Address = address;
            context.SaveChanges();

            var empl = context.Employees.FirstOrDefault(e => e.LastName == "Nakov");
            Console.WriteLine(empl.Address.AddressText);

             // Task 5- NO

            var context = new SoftUniEntities();

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

            var empProjects = project.Employees.ToList();

            foreach (var empl in empProjects)
            {
                if (empl.Projects.Contains(project))
                {
                    context.Employees.Remove(empl);
                };
            }

               // context.Projects.Remove(project);

            context.SaveChanges();
        }
示例#28
0
 public static void InsertEmployee(SoftUniEntities db, Employee employee)
 {
     db.Employees.Add(employee);
     db.SaveChanges();
 }
示例#29
0
 public static void Modify(Employee employee)
 {
     var context = new SoftUniEntities();
 }
示例#30
0
 public static Employee FindByID(int id)
 {
     var db = new SoftUniEntities();
     Employee employee = db.Employees.Find(id);
     return employee;
 }
示例#31
0
        static void Main()
        {
            var context = new SoftUniEntities();

            //// Problem 2

            /* Employee michael = new Employee()
             {
                 FirstName = "Michael",
                 LastName = "Jordanov",
                 JobTitle = "playa",
                 DepartmentID = 2,
                 HireDate = DateTime.Now,
                 Salary = 1000000
             };
             DAOClass.Add(michael);

             DAOClass.Delete(michael);*/

            //// Problem 3

            // 3.1
            /*
            var employees = context.Employees
                        .Where(e => e.Projects.Any(p => p.StartDate >= new DateTime(2001, 1, 1) && p.EndDate < new DateTime(2004, 1, 1)))
                        .Select(e => new
                                {
                                 e.FirstName,
                                 e.LastName,
                                 ManagerName = e.Manager.FirstName + " " + e.Manager.LastName,
                                 Projects = e.Projects.Where(p => p.StartDate >= new DateTime(2001, 1, 1) && p.EndDate < new DateTime(2004, 1, 1))
                                                      .Select(p => new
                                                             {
                                                                 p.Name,
                                                                 p.StartDate,
                                                                 p.EndDate
                                                                })
                                });

             foreach (var e in employees)
             {
                 Console.WriteLine("Employee: {0} {1}, manager: {2}", e.FirstName, e.LastName, e.ManagerName);
                 Console.WriteLine("Projects:");
                 foreach (var p in e.Projects)
                 {
                     Console.WriteLine("{0}: start: {1}, end: {2}", p.Name, p.StartDate, p.EndDate);
                 }
                 Console.WriteLine();
             }
             */

            // 3.2
            /*
            var addresses = context.Addresses
                .OrderByDescending(a => a.Employees.Count)
                .ThenBy(a => a.Town.Name)
                .Select(a => new
                        {
                            Address = a.AddressText,
                            Town = a.Town.Name,
                            EmployeeCount = a.Employees.Count
                        })
                        .Take(10);

            foreach (var address in addresses)
            {
                Console.WriteLine("{0}, {1} - {2} employees",
                    address.Address,
                    address.Town,
                    address.EmployeeCount
                    );
            }
            */

            // 3.3
            /*
            var employeeById = context.Employees
                .Where(e => e.EmployeeID == 147)
                .Select(e => new
                {
                    e.FirstName,
                    e.LastName,
                    e.JobTitle,
                    Projets = e.Projects.OrderBy(p => p.Name).Select(p => p.Name)
                });

            foreach (var e in employeeById)
            {
                Console.WriteLine("{0} {1}, {2}", e.FirstName, e.LastName, e.JobTitle);
                Console.WriteLine("Projects:");
                foreach (var p in e.Projets)
                {
                    Console.WriteLine(p);
                }
            }
            */

            // 3.4
            /*
            var departments = context.Departments
                .Where(d => d.Employees.Count > 5)
                .OrderBy(d => d.Employees.Count)
                .Select(d => new
                {
                    DepartmentName = d.Name,
                    DepartmentManager = d.Manager.LastName,
                    EmployeesCount = d.Employees.Count,
                    Employees = d.Employees
                });

            foreach (var d in departments)
            {
                Console.WriteLine("--{0} - Manager: {1}, Employees: {2}",d.DepartmentName, d.DepartmentManager, d.EmployeesCount);
                Console.WriteLine("Employees:");
                foreach (var e in d.Employees)
                {
                    Console.WriteLine("{0} {1}, hire date: {2}, job: {3}",
                        e.FirstName, e.LastName, e.HireDate, e.JobTitle);
                }
                Console.WriteLine();
            }
            */

            //// Problem 4

            //var sw = new Stopwatch();

            //sw.Start();
            //PrintNamesWithNativeQuery(context);
            //Console.WriteLine("Native: {0}", sw.Elapsed);

            //sw.Restart();
            //PrintNamesWithLINQ(context);
            //Console.WriteLine("LINQ: {0}", sw.Elapsed);

            //// Problem 6

            // updated model from database to add the stored procedures

            CallStoredProcedure("Ruth", "Ellerbrock");
        }
示例#32
0
        static void Main()
        {
            var context = new SoftUniEntities();

            //// Problem 2

            /* Employee michael = new Employee()
             * {
             *   FirstName = "Michael",
             *   LastName = "Jordanov",
             *   JobTitle = "playa",
             *   DepartmentID = 2,
             *   HireDate = DateTime.Now,
             *   Salary = 1000000
             * };
             * DAOClass.Add(michael);
             *
             * DAOClass.Delete(michael);*/

            //// Problem 3

            // 3.1

            /*
             * var employees = context.Employees
             *          .Where(e => e.Projects.Any(p => p.StartDate >= new DateTime(2001, 1, 1) && p.EndDate < new DateTime(2004, 1, 1)))
             *          .Select(e => new
             *                  {
             *                   e.FirstName,
             *                   e.LastName,
             *                   ManagerName = e.Manager.FirstName + " " + e.Manager.LastName,
             *                   Projects = e.Projects.Where(p => p.StartDate >= new DateTime(2001, 1, 1) && p.EndDate < new DateTime(2004, 1, 1))
             *                                        .Select(p => new
             *                                               {
             *                                                   p.Name,
             *                                                   p.StartDate,
             *                                                   p.EndDate
             *                                                  })
             *                  });
             *
             * foreach (var e in employees)
             * {
             *   Console.WriteLine("Employee: {0} {1}, manager: {2}", e.FirstName, e.LastName, e.ManagerName);
             *   Console.WriteLine("Projects:");
             *   foreach (var p in e.Projects)
             *   {
             *       Console.WriteLine("{0}: start: {1}, end: {2}", p.Name, p.StartDate, p.EndDate);
             *   }
             *   Console.WriteLine();
             * }
             */

            // 3.2

            /*
             * var addresses = context.Addresses
             *  .OrderByDescending(a => a.Employees.Count)
             *  .ThenBy(a => a.Town.Name)
             *  .Select(a => new
             *          {
             *              Address = a.AddressText,
             *              Town = a.Town.Name,
             *              EmployeeCount = a.Employees.Count
             *          })
             *          .Take(10);
             *
             *
             * foreach (var address in addresses)
             * {
             *  Console.WriteLine("{0}, {1} - {2} employees",
             *      address.Address,
             *      address.Town,
             *      address.EmployeeCount
             *      );
             * }
             */

            // 3.3

            /*
             * var employeeById = context.Employees
             *  .Where(e => e.EmployeeID == 147)
             *  .Select(e => new
             *  {
             *      e.FirstName,
             *      e.LastName,
             *      e.JobTitle,
             *      Projets = e.Projects.OrderBy(p => p.Name).Select(p => p.Name)
             *  });
             *
             * foreach (var e in employeeById)
             * {
             *  Console.WriteLine("{0} {1}, {2}", e.FirstName, e.LastName, e.JobTitle);
             *  Console.WriteLine("Projects:");
             *  foreach (var p in e.Projets)
             *  {
             *      Console.WriteLine(p);
             *  }
             * }
             */

            // 3.4

            /*
             * var departments = context.Departments
             *  .Where(d => d.Employees.Count > 5)
             *  .OrderBy(d => d.Employees.Count)
             *  .Select(d => new
             *  {
             *      DepartmentName = d.Name,
             *      DepartmentManager = d.Manager.LastName,
             *      EmployeesCount = d.Employees.Count,
             *      Employees = d.Employees
             *  });
             *
             * foreach (var d in departments)
             * {
             *  Console.WriteLine("--{0} - Manager: {1}, Employees: {2}",d.DepartmentName, d.DepartmentManager, d.EmployeesCount);
             *  Console.WriteLine("Employees:");
             *  foreach (var e in d.Employees)
             *  {
             *      Console.WriteLine("{0} {1}, hire date: {2}, job: {3}",
             *          e.FirstName, e.LastName, e.HireDate, e.JobTitle);
             *  }
             *  Console.WriteLine();
             * }
             */

            //// Problem 4

            //var sw = new Stopwatch();

            //sw.Start();
            //PrintNamesWithNativeQuery(context);
            //Console.WriteLine("Native: {0}", sw.Elapsed);

            //sw.Restart();
            //PrintNamesWithLINQ(context);
            //Console.WriteLine("LINQ: {0}", sw.Elapsed);

            //// Problem 6

            // updated model from database to add the stored procedures

            CallStoredProcedure("Ruth", "Ellerbrock");
        }
示例#33
0
 private static void PrintNamesWithNativeQuery(SoftUniEntities context)
 {
     string query = "SELECT e.FirstName FROM dbo.Employees e JOIN dbo.EmployeesProjects ep ON ep.EmployeeID = e.EmployeeID JOIN dbo.Projects p ON p.ProjectID = ep.ProjectID GROUP BY e.FirstName, p.StartDate HAVING YEAR(p.StartDate) = 2002";
     var nativeQueryResult = context.Database.SqlQuery<string>(query);
     foreach (var item in nativeQueryResult)
     {
         Console.WriteLine(item);
     }
 }
示例#34
0
        static void Main()
        {
            //step 1

            var context = new SoftUniEntities();

            var employeeNames = context.Employees
                                .Where(e => e.Salary > 50000)
                                .Select(e => e.FirstName);

            var employees =
                from e in context.Employees
                where e.Salary > 50000
                select e.FirstName;

            foreach (var item in employees)
            {
                Console.WriteLine(item);
            }


            // task 3


            //  task 4

            var context = new SoftUniEntities();

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

            Employee employee = context.Employees
                                .Where(e => e.LastName == "Nakov")
                                .FirstOrDefault();

            employee.Address = address;
            context.SaveChanges();

            var empl = context.Employees.FirstOrDefault(e => e.LastName == "Nakov");

            Console.WriteLine(empl.Address.AddressText);

            // Task 5- NO

            var context = new SoftUniEntities();

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

            var empProjects = project.Employees.ToList();

            foreach (var empl in empProjects)
            {
                if (empl.Projects.Contains(project))
                {
                    context.Employees.Remove(empl);
                }
                ;
            }

            // context.Projects.Remove(project);

            context.SaveChanges();
        }
示例#35
0
        private static void PrintNamesWithLINQ(SoftUniEntities context)
        {
            var emps = context.Employees
                .Where(e => e.Projects.Any(p => p.StartDate.Year == 2002))
                .Select(e => new
                {
                    e.FirstName
                });

            foreach (var e in emps)
            {
                Console.WriteLine(e.FirstName);
            }
        }
示例#36
0
 public static void Modify(Employee employee)
 {
     var context = new SoftUniEntities();
 }