示例#1
0
        public Request MakeARequestForLeave(EmployeeProjectDbContext db, Employee employee, Leave leave)
        {
            var request = new Request()
            {
                Employee           = employee,
                Leave              = leave,
                DateRequestedLeave = DateTime.Now.Date,
                IsAccepted         = true
            };

            if (employee.RemaingDaysOfLeave < leave.HowManyDays || leave.HowManyDays <= 0)
            {
                request.IsAccepted = false;
            }

            if (request.IsAccepted)
            {
                employee.RemaingDaysOfLeave -= leave.HowManyDays;
            }

            try
            {
                db.Leaves.Add(leave);
                db.Requests.Add(request);
                db.SaveChanges();
            }
            catch (DataException e)
            {
                throw new DataException(e.Message);
            }


            return(request);
        }
示例#2
0
 public void Delete(EmployeeProjectDbContext db, Employee employee)
 {
     try
     {
         db.Entry(employee).State = EntityState.Deleted;
         db.SaveChanges();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
 }
示例#3
0
        //ctrors

        //methods;

        //post create
        public Employee Create(EmployeeProjectDbContext db, Employee employee)
        {
            try
            {
                db.Employees.Add(employee);
                db.SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            return(employee);
        }
示例#4
0
        public void AssignShiftsToWorkDay(EmployeeProjectDbContext db, WorkDay workDay, Department department)
        {
            //an den yparxei h workDay sth vash tote thn dhmiourgw
            if (!db.WorkDays.Contains(workDay))
            {
                CreateANewWorkDay(db, workDay);
            }

            foreach (var shift in workDay.Shifts)
            {
                shift.AssignEmployeesToShift(db, shift, department);
            }
        }
 private void CreateANewWeeklySchedule(EmployeeProjectDbContext db, WeeklySchedule weeklySchedule)
 {
     try
     {
         if (weeklySchedule != null)
         {
             db.WeeklySchedules.Add(weeklySchedule);
             db.SaveChanges();
         }
     }
     catch (DataException e)
     {
         throw new DataException(e.Message);
     }
 }
示例#6
0
 private void CreateANewShift(EmployeeProjectDbContext db, Shift shift)
 {
     try
     {
         if (shift != null)
         {
             db.Shifts.Add(shift);
             db.SaveChanges();
         }
     }
     catch (DataException e)
     {
         throw new DataException(e.Message);
     }
 }
示例#7
0
 private void CreateANewWorkDay(EmployeeProjectDbContext db, WorkDay workDay)
 {
     try
     {
         if (workDay != null)
         {
             db.WorkDays.Add(workDay);
             db.SaveChanges();
         }
     }
     catch (DataException e)
     {
         throw new DataException(e.Message);
     }
 }
 public void AssignWorkDaysToWeeklySchedule(EmployeeProjectDbContext db, WeeklySchedule weeklySchedule, Department department)
 {
 }
示例#9
0
        public void AssignEmployeesToShift(EmployeeProjectDbContext db, Shift shift, Department department)
        {
            //an den yparxei h vardia sth vash tote thn dhmiourgw
            if (!db.Shifts.Contains(shift))
            {
                CreateANewShift(db, shift);
            }

            //fernw olous tous ergazomenous poy douleyoun sto department
            var allEmployeesOfDepartment = db.Employees
                                           .Where(d => d.Department.ID == department.ID);


            foreach (var employee in allEmployeesOfDepartment)
            {
                //gia department me 3 vardies
                var listMorningIDs = new List <int>()
                {
                    shift.ID, shift.ID - 1, shift.ID + 1, shift.ID + 2, shift.ID + 3, shift.ID + 4
                };
                var listEveningIDs = new List <int>()
                {
                    shift.ID, shift.ID - 1, shift.ID + 1
                };
                var listNightIDs = new List <int>()
                {
                    shift.ID, shift.ID - 1, shift.ID - 2, shift.ID + 1
                };

                switch (shift.DayShift)
                {
                case Shifts.Morning:
                    if (!employee.Posts.Select(post => post.Shift.ID)
                        .Intersect(listMorningIDs)
                        .Any())
                    {
                        var post = new Post()
                        {
                            Shift    = shift,
                            Employee = employee
                        };

                        try
                        {
                            employee.Posts.Add(post);
                            db.SaveChanges();
                        }
                        catch (DataException e)
                        {
                            throw new DataException(e.Message);
                        }
                    }
                    break;

                case Shifts.Evening:
                    if (!employee.Posts.Select(post => post.Shift.ID)
                        .Intersect(listEveningIDs)
                        .Any())
                    {
                        var post = new Post()
                        {
                            Shift    = shift,
                            Employee = employee
                        };

                        try
                        {
                            employee.Posts.Add(post);
                            db.SaveChanges();
                        }
                        catch (DataException e)
                        {
                            throw new DataException(e.Message);
                        }
                    }
                    break;

                case Shifts.Night:
                    if (!employee.Posts.Select(post => post.Shift.ID)
                        .Intersect(listNightIDs)
                        .Any())
                    {
                        var post = new Post()
                        {
                            Shift    = shift,
                            Employee = employee
                        };

                        try
                        {
                            employee.Posts.Add(post);
                            db.SaveChanges();
                        }
                        catch (DataException e)
                        {
                            throw new DataException(e.Message);
                        }
                    }
                    break;

                default:

                    break;
                }
            }
        }