public async Task <ActionResult> SetLeave(int Id)
        {
            LeaveType leaveType = await _leavetyperepo.FindById(Id);

            IList <Employee> employees =
                await _userManager.GetUsersInRoleAsync("Employee");

            foreach (Employee emp in employees)
            {
                bool hasAllocation = await _leaveallocationrepo.CheckAllocation(Id, emp.Id);

                if (hasAllocation)
                {
                    continue;
                }

                LeaveAllocationViewModel allocation =
                    new LeaveAllocationViewModel
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = Id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };

                LeaveAllocation leaveAllocation = _mapper
                                                  .Map <LeaveAllocation>(allocation);

                await _leaveallocationrepo.Create(leaveAllocation);
            }

            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> SetLeave(int id)
        {
            var leaveType = await _leaveTypeRepo.FindById(id);

            var employee = await _userManager.GetUsersInRoleAsync("Employee");

            foreach (var emp in employee)
            {
                if (await _leaveAllocationRepo.isLeaveExiss(id, emp.Id))
                {
                    continue;
                }
                var allocation = new LeaveAllocationVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    leaveId      = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveAllocation = _mapper.Map <LeaveAllocation>(allocation);
                await _leaveAllocationRepo.Create(leaveAllocation);
            }
            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> SetLeave(int id)
        {
            var varLeaveType = await _ILeaveTypeRepository.FindByID(id);

            var varEmployees = await _userManager.GetUsersInRoleAsync("Employee");

            int intCounter = 0;

            foreach (var forEmployee in varEmployees)
            {
                if (!await _ILeaveAllocationRepository.checkLeaveAllocated(forEmployee.Id, id, DateTime.Now.Year))
                {
                    intCounter++;
                    LeaveAllocationVMClass locLeaveAllocationVMClass = new LeaveAllocationVMClass
                    {
                        NumberOfDays = varLeaveType.DefaultDays,
                        DateCreated  = DateTime.Now,
                        EmployeeID   = forEmployee.Id,
                        LeaveTypeID  = id,
                        Period       = DateTime.Now.Year
                    };

                    var varLeaveAllocationMap = _IMapper.Map <LeaveAllocation>(locLeaveAllocationVMClass);
                    await _ILeaveAllocationRepository.Create(varLeaveAllocationMap);
                }
            }

            CreateLeaveAllocationVMClass locCreateLeaveAllocationVMClass = new CreateLeaveAllocationVMClass
            {
                NumberUpdated = intCounter
            };

            return(View(locCreateLeaveAllocationVMClass));
        }
        public async Task <ActionResult> SetLeave(int id)
        {
            var leaveType = await _leaverepo.FindById(id);

            var employees = _userManager.GetUsersInRoleAsync("Employee").Result;

            foreach (var emp in employees)
            {
                /*
                 * Checks if an existing row is found:
                 * if found: we should skip past and not create a new object.
                 * if NOT found: create the allocation object, map to type and call the _allocationrepo.Create.
                 */
                if (await _allocationrepo.CheckAllocation(id, emp.Id))
                {
                    continue;
                }

                var allocation = new LeaveAllocationViewModel
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveAllocation = _mapper.Map <LeaveAllocation>(allocation);

                await _allocationrepo.Create(leaveAllocation);
            }
            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 5
0
        public async Task <ActionResult> SetLeave(int id)
        {
            var leavetype = await _leaverepo.FindById(id);

            var employees = await _userManager.GetUsersInRoleAsync("Employee");

            foreach (var emp in employees)
            {
                /* in case that leaveallcoation for this type of leave for this employee already exists */
                if (await _leaveallocationrepo.CheckAllocation(id, emp.Id))
                {
                    continue;
                }


                var allocation = new LeaveAllocationVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leavetype.DefaultDays,
                    Period       = DateTime.Now.Year
                };

                var leaveallocation = _mapper.Map <LeaveAllocation>(allocation);

                await _leaveallocationrepo.Create(leaveallocation);
            }

            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 6
0
        public async Task <ActionResult> SetLeave(int id)
        {
            var leaveType = await _leaveTypeRepo.FindById(id);

            //get all users that are employees (in employee role)
            var employees = await _userManager.GetUsersInRoleAsync("Employee");

            //for each employee, create an allocation
            foreach (var employee in employees)
            {
                var check = await _LeaveAllocationrepo.CheckAllocation(leaveType.id, employee.Id);

                //skip leave allocation if the employee already has the leave
                if (check)
                {
                    continue;
                }

                var allocation = new LeaveAllocationVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = employee.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };

                var leaveAllocation = _mapper.Map <LeaveAllocation>(allocation);
                await _LeaveAllocationrepo.Create(leaveAllocation);
            }

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <ActionResult> SetLeave(int id)
        {
            var leaveType = await _leaveRepo.FindById(id);

            var employees = await _userManager.GetUsersInRoleAsync("Employee");

            int counter = 0;

            foreach (var e in employees)
            {
                bool isAllocationAvailable = await _leaveAllocationRepo.CheckAllocation(id, e.Id);

                if (isAllocationAvailable)
                {
                    continue;
                }
                var allocation = new LeaveAllocationVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = e.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveAllocation = _mapper.Map <LeaveAllocation>(allocation);
                await _leaveAllocationRepo.Create(leaveAllocation);

                counter++;
            }

            return(RedirectToAction(nameof(Index)));
        }
        public ActionResult SetLeave(int id)
        {
            var leaveType = _leaverepo.FindById(id);
            var employees = _userManager.GetUsersInRoleAsync("Employee").Result;
            var noUpdated = 0;

            foreach (var emp in employees)
            {
                if (_leaveallocationrepo.CheckAllocation(id, emp.Id))
                {
                    continue;
                }
                var allocation = new LeaveAllocationVM()
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveallocation = _mapper.Map <LeaveAllocation>(allocation);
                _leaveallocationrepo.Create(leaveallocation);
                noUpdated++;
            }
            System.Diagnostics.Debug.WriteLine("No Updated: " + noUpdated);
            return(RedirectToAction(nameof(Index), new { id = noUpdated }));
        }
        public async Task <ActionResult> SetLeave(int id)
        {
            var leavetype = await _leaveTypeRepository.FindById(id);

            var employees = await _userManager.Users.ToListAsync();

            foreach (var emp in employees)
            {
                if (await _leaveAllocationRepository.CheckAllocation(id, emp.Id))
                {
                    continue;
                }
                var allocation = new LeaveAllocationVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leavetype.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveallocation = _mapper.Map <LeaveAllocation>(allocation);
                await _leaveAllocationRepository.Create(leaveallocation);
            }
            return(RedirectToAction(nameof(Index)));
        }
        public ActionResult SetLeave(int id)
        {
            var leavetype = _leaverepo.FindById(id);
            var employees = _userManager.GetUsersInRoleAsync("Employee").Result;

            foreach (var emp in employees)
            {
                if (_leaveallocationrepo.CheckAllocation(id, emp.Id))
                {
                    continue;
                }
                var allocation = new LeaveAllocationVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leavetype.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveallocation = _mapper.Map <LeaveAllocation>(allocation);
                _leaveallocationrepo.Create(leaveallocation);
            }

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <ActionResult> SetLeave(int Id)
        {
            var leaveType = await _leaverepo.FindById(Id);

            var employees = await _userManager.GetUsersInRoleAsync("employee");

            foreach (var emp in employees)
            {
                var myAllocation = await _leaveallocationrepo.CheckAllocation(Id, emp.Id);

                if (myAllocation)
                {
                    continue;
                }
                var allocation = new LeaveAllocation
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = Id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveallocation = _mapper.Map <LeaveAllocation>(allocation);
                await _leaveallocationrepo.Create(leaveallocation);
            }
            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 12
0
        public ActionResult SetLeave(int id)
        {
            var leavetype = _leaverepo.FindById(id);
            var employees = _userManager.GetUsersInRoleAsync("Employee").Result;

            foreach (var emp in employees) //Go through the list of employee's
            {
                if (_leaveallocationrepo.CheckAllocation(id, emp.Id))
                {
                    //if their is leave allocation for this employee then continue
                    continue; //skip iteration
                }
                var allocation = new LeaveAllocationViewModel
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberofDays = leavetype.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveallocation = _mapper.Map <LeaveAllocation>(allocation);
                _leaveallocationrepo.Create(leaveallocation);
            }
            return(RedirectToAction(nameof(Index))); // Redirect back to index
        }
        public IActionResult AllocateLeave(int id)
        {
            var leaveType    = _leaveTypeRepo.FindById(id);
            var employeeList = _userManager.GetUsersInRoleAsync("Employee").Result;

            foreach (var emp in employeeList)
            {
                //Check if employee is not already assigned with the leaves.
                //Number of Days should be default of each leave type
                //Period for which leave has been allocated should be defined.
                if (_leaveAllocationRepo.CheckEmployeeHasLeaveAssigned(id, emp.Id) == true)
                {
                    continue;
                }
                var allocation = new LeaveAllocationVM
                {
                    LeaveTypeId  = id,
                    EmployeeId   = emp.Id,
                    NumberOfDays = 10,
                    DateCreated  = DateTime.Now
                };
                var leaveAllocationEntity = _mapper.Map <LeaveAllocation>(allocation);
                _leaveAllocationRepo.Create(leaveAllocationEntity);
            }
            return(RedirectToAction(nameof(Index)));
        }
        /// <summary>
        /// GET: Allocating all the leave types for all the employees for the specific period
        /// </summary>
        /// <param name="id">The id of the leave type</param>
        /// <returns></returns>
        public ActionResult SetLeave(int id)
        {
            var leaveType = _leaveTypeRepo.FindById(id);
            var employees = _userManager.GetUsersInRoleAsync("Employee").Result;

            foreach (var employee in employees)
            {
                //If the leave type was already allocated to the employee continue with the next iteration
                if (_leaveAllocationRepo.CheckAllocation(id, employee.Id))
                {
                    continue;
                }

                //If the leave type was not allocated to the employee create the allocation view model
                var allocation = new LeaveAllocationViewModel
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = employee.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };

                //Map the allocation view model to the allocation repository data
                var leaveAllocation = _mapper.Map <LeaveAllocation>(allocation);

                //Create the leave allocations entry in the database
                _leaveAllocationRepo.Create(leaveAllocation);
            }

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> SetLeave(int leaveTypeId)
        {
            var leaveType = await leaveTypeRepository.FindById(leaveTypeId);

            var employees     = userManager.GetUsersInRoleAsync("employee").Result;
            var numberUpdated = default(int);

            foreach (var employee in employees)
            {
                if (!await leaveAllocationRepository.CheackIfAllocationExistsForEmployee(leaveTypeId, employee.Id))
                {
                    var allocation = new LeaveAllocationVM
                    {
                        DateCreated  = DateTime.Now,
                        EmployeeId   = employee.Id,
                        LeaveTypeId  = leaveTypeId,
                        NumberOfDays = leaveType.DeafaultNumberOfDays,
                        Period       = DateTime.Now.Year
                    };

                    var leaveAllocation = mapper.Map <LeaveAllocation>(allocation);
                    await leaveAllocationRepository.Create(leaveAllocation);

                    numberUpdated++;
                }
            }

            return(RedirectToAction(nameof(Index), new { numberUpdated = numberUpdated }));
        }
        public IActionResult SetLeave(Guid Id)
        {
            var leaveType = _leaveTypeRepository.FindById(Id);
            var employees = _userManager.GetUsersInRoleAsync("Employee").Result;


            foreach (var employee in employees)
            {
                if (_repository.CheckAllocation(Id, employee.Id))
                {
                    continue;
                }


                var leaveAllocation = new LeaveAllocation
                {
                    DateCreated = DateTime.Now,

                    EmployeeId   = employee.Id,
                    LeaveTypeId  = Id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };

                _repository.Create(leaveAllocation);
                _numberUpdated++;
            }

            return(RedirectToAction("Index", new { numberUpdated = _numberUpdated }));
        }
Exemplo n.º 17
0
        public ActionResult SetLeave(int id)
        {
            var leaveType = _typeRepo.FindById(id);
            // get all users with Employee role
            var employees = _userManager.GetUsersInRoleAsync("Employee").Result;

            // iterate the users with employee role
            foreach (var item in employees)
            {
                // check if they already allocated to prevent duplicates
                if (_repo.CheckAllocation(id, item.Id))
                {
                    continue;
                }


                var allocation = new LeaveAllocationViewModel
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = item.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };

                // map the allocated user
                var leaveAllocated = _mapper.Map <LeaveAllocation>(allocation);

                //create mapped user for leavement
                _repo.Create(leaveAllocated);
            }

            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 18
0
        public async Task <ActionResult> SetLeave(int id)
        {
            var leavetypes = await _leaverepo.FindById(id);

            var employees = await _userManager.GetUsersInRoleAsync("Employee");

            foreach (var emp in employees)
            {
                //retriving leave type for which we are setting the employee
                if (await _leaveallocationrepo.CheckAllocation(id, emp.Id))
                {
                    continue;
                }
                var allocation = new LeaveAllocaitionVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leavetypes.DefaultDays,
                    Period       = DateTime.Now.Year
                };
                var leaveallocation = _Mapper.Map <LeaveAllocation>(allocation);
                await _leaveallocationrepo.Create(leaveallocation);
            }
            return(RedirectToAction(nameof(Index)));
        }
Exemplo n.º 19
0
        public async Task <ActionResult> SetLeave(int id)
        {
            var leaveType = await _TypeRepo.FindById(id);

            var employees = _userManager.GetUsersInRoleAsync("Employee").Result.ToList();


            foreach (var emp in employees)
            {
                if (await _AllocationRepo.CheckAllocation(id, emp.Id))
                {
                    continue;
                }

                if ((leaveType.Name == "Maternity Leave") && (emp.Gender == "Male" || emp.Gender == "Others"))
                {
                    continue;
                }

                if ((leaveType.Name == "Paternity Leave") && (emp.Gender == "Female" || emp.Gender == "Others"))
                {
                    continue;
                }

                var allocation = new LeaveAllocationVM
                {
                    DateCreated  = DateTime.Now,
                    EmployeeId   = emp.Id,
                    LeaveTypeId  = id,
                    NumberOfDays = leaveType.DefaultDays,
                    Period       = DateTime.Now.Year
                };

                var leaveallocation = _mapper.Map <LeaveAllocationVM, LeaveAllocation>(allocation);
                await _AllocationRepo.Create(leaveallocation);
            }
            return(RedirectToAction(nameof(Index)));
        }
        public ActionResult SetLeave(int id)
        {
            var count = 0;

            try
            {
                var leaveType = _leaveTypeRepo.FindById(id.ToString());
                var employees = _userManager.GetUsersInRoleAsync("Employee").Result;

                foreach (var item in employees)
                {
                    if (!_repo.CheckAllocation(id, item.Id, DateTime.Now.Year))
                    {
                        var allocation = new LeaveAllocationViewModel
                        {
                            DateCreated  = DateTime.UtcNow,
                            EmployeeId   = item.Id,
                            LeaveTypeId  = id,
                            NumberofDays = leaveType.DefaultDays,
                            LeaveYear    = DateTime.Now.Year
                        };

                        var leaveAllocation = _mapper.Map <LeaveAllocation>(allocation);
                        _repo.Create(leaveAllocation);

                        count++;
                    }
                }
            }
            catch
            {
                ModelState.AddModelError("", "Error occured, Action may not be fully completed.");
            }

            return(RedirectToAction(nameof(Index), new { @count = count }));
        }