public async Task <IActionResult> Edit(int id, [Bind("ShiftGroupId,Name")] ShiftGroup shiftGroup)
        {
            if (id != shiftGroup.ShiftGroupId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(shiftGroup);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ShiftGroupExists(shiftGroup.ShiftGroupId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(shiftGroup));
        }
            /**
             * This method seeds admin user
             * **/
            public async Task SeedAdminUser(UserManager <ApplicationUser> userManager)
            {
                string AdminUserName = _identityInit.AdminUserName;
                string AdminEmail    = _identityInit.AdminEmail;
                string AdminPassword = _identityInit.AdminPassword;

                // check if admin user doesn't exist
                if ((await userManager.FindByNameAsync(AdminUserName)) == null)
                {
                    // get gender by name "Male"
                    Gender gender = await _context.Genders.Where(b => b.Name.ToLower() == "male")
                                    .FirstOrDefaultAsync();

                    ShiftGroup shiftGrp = await _context.ShiftGroups.Where(b => b.Name.ToLower() == "general")
                                          .FirstOrDefaultAsync();

                    // create desired admin user object
                    ApplicationUser user = new ApplicationUser
                    {
                        UserName    = AdminUserName,
                        DisplayName = AdminUserName,
                        Email       = AdminEmail,
                        Gender      = gender,
                        ShiftGroup  = shiftGrp
                    };

                    // push desired admin user object to DB
                    IdentityResult result = await userManager.CreateAsync(user, AdminPassword);

                    if (result.Succeeded)
                    {
                        await userManager.AddToRoleAsync(user, SecurityConstants.AdminRoleString);
                    }
                }
            }
Example #3
0
 public async Task<List<ShiftParticipation>> Handle(CreateShiftParticipationsFromGroupCommand request, CancellationToken cancellationToken)
 {
     // Get the shift participation type named normal
     ShiftParticipationType shiftParticipationType = await _context.ShiftParticipationTypes.Where(spt => spt.Name.ToLower() == "normal").FirstOrDefaultAsync();
     // get the employees in the shiftGroup
     ShiftGroup shiftGroup = await _context.ShiftGroups.Include(sg => sg.Employees).FirstOrDefaultAsync(sg => sg.Id == request.ShiftGroupId);
     List<string> empIds = shiftGroup.Employees.Where(e => e.UserName != _identityInit.AdminUserName).Select(empl => empl.Id).ToList();
     foreach (string empId in empIds)
     {
         try
         {
             // check if participation exists
             if ((await _context.ShiftParticipations.Where(sp => (sp.ShiftId == request.ShiftId) && (sp.EmployeeId == empId)).ToListAsync()).Count > 0)
             {
                 continue;
             }
             _context.ShiftParticipations.Add(new ShiftParticipation { EmployeeId = empId, ShiftId = request.ShiftId, ShiftParticipationTypeId = shiftParticipationType.Id });
             await _context.SaveChangesAsync();
         }
         catch (Exception ex)
         {
             Console.WriteLine($"error occured while adding participation of employee id {empId} to shift id {request.ShiftId} -- {ex.Message}");
             continue;
         }
     }
     return await _context.ShiftParticipations.Where(sp => sp.ShiftId == request.ShiftId).ToListAsync();
 }
Example #4
0
        public async Task <IActionResult> AddShiftGroup(ShiftGroup item)
        {
            await _context.ShiftGroups.AddAsync(item);

            await _context.SaveChangesAsync();

            return(RedirectToAction("ShiftGroupsList", new { id = item.ShiftId }));
        }
        public async Task <IActionResult> Create([Bind("ShiftGroupId,Name")] ShiftGroup shiftGroup)
        {
            if (ModelState.IsValid)
            {
                _context.Add(shiftGroup);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(shiftGroup));
        }
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ShiftGroup = await _context.ShiftGroups.FirstOrDefaultAsync(m => m.Id == id);

            if (ShiftGroup == null)
            {
                return(NotFound());
            }
            return(Page());
        }
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            ShiftGroup = await _context.ShiftGroups.FindAsync(id);

            if (ShiftGroup != null)
            {
                _context.ShiftGroups.Remove(ShiftGroup);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
Example #8
0
        public async Task <IActionResult> PostShiftParticipationFromGroup([FromBody] ShiftGroupPartAddParamsViewModel paramsVm)
        {
            //todo complete this
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int shiftGroupId = paramsVm.ShiftGroupId;
            int shiftId      = paramsVm.ShiftId;

            // get the employees in the shiftGroup
            ShiftGroup shiftGroup = await _context.ShiftGroups.Include(sg => sg.Employees).FirstOrDefaultAsync(sg => sg.ShiftGroupId == shiftGroupId);

            List <int> empIds = shiftGroup.Employees.Select(empl => empl.EmployeeId).ToList();

            foreach (int empId in empIds)
            {
                try
                {
                    // check if participation exists
                    if ((await _context.ShiftParticipations.Where(sp => (sp.ShiftId == shiftId) && (sp.EmployeeId == empId)).ToListAsync()).Count > 0)
                    {
                        continue;
                    }
                    _context.ShiftParticipations.Add(new ShiftParticipation {
                        EmployeeId = empId, ShiftId = shiftId
                    });
                    await _context.SaveChangesAsync();
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"error occured while adding participation of employee id {empId} to shift id {shiftId} -- {ex.Message}");
                    continue;
                }
            }

            return(CreatedAtAction("GetShiftParticipationFromShift", new { shiftId }, await _context.ShiftParticipations.Where(sp => sp.ShiftId == shiftId).ToListAsync()));
        }
Example #9
0
        private void LoadDefaults()
        {
            CurrentCompanyID = RouteData.Values.Keys.Contains("CompanyId") ? RouteData.Values["CompanyId"].ToString() : "";
            LoadCompanyDropdown();

            if (CurrentCompanyID == "")
            {
                if (ddlCompanies.Items.Count > 0)
                {
                    CurrentCompanyID = ddlCompanies.Items[0].Value;
                }
            }
            CurrentWorkareaID = RouteData.Values.Keys.Contains("WorkareaId") ? RouteData.Values["WorkareaId"].ToString() : "";

            List <int> Years = new List <int>();

            for (int i = objConfig.MinCompanyYearOfEstablishment; i <= Convert.ToInt32(DateTime.Now.ToString("yyyy")); i++)
            {
                Years.Add(i);
            }

            ddlYear.DataSource = Years;
            ddlYear.DataBind();
            ddlYear.SelectedValue = DateTime.Now.ToString("yyyy");

            // Load Countries
            Country        objCountry = new Country();
            List <Country> countries  = objCountry.Select(Status.Active);

            ddlCountry.DataSource     = countries;
            ddlCountry.DataValueField = "CountryID";
            ddlCountry.DataTextField  = "CountryName";
            ddlCountry.DataBind();

            // Load Shift Groups
            ShiftGroup        objShiftGroup = new ShiftGroup();
            List <ShiftGroup> ShiftGroups   = objShiftGroup.Select(Status.Active);

            ddlShiftGroup.DataSource     = ShiftGroups;
            ddlShiftGroup.DataValueField = "ShiftGroupID";
            ddlShiftGroup.DataTextField  = "ShiftGroupName";
            ddlShiftGroup.DataBind();

            // Load Holiday Groups
            HolidayGroup        objHolidayGroup = new HolidayGroup();
            List <HolidayGroup> HolidayGroups   = objHolidayGroup.Select(Status.Active);

            ddlHolidayGroup.DataSource     = HolidayGroups;
            ddlHolidayGroup.DataValueField = "HolidayGroupID";
            ddlHolidayGroup.DataTextField  = "HolidayGroupName";
            ddlHolidayGroup.DataBind();

            // Load Leave Groups
            LeaveGroup        objLeaveGroup = new LeaveGroup();
            List <LeaveGroup> LeaveGroups   = objLeaveGroup.Select(Status.Active);

            ddlLeaveGroup.DataSource     = LeaveGroups;
            ddlLeaveGroup.DataValueField = "LeaveGroupID";
            ddlLeaveGroup.DataTextField  = "LeaveGroupName";
            ddlLeaveGroup.DataBind();

            // Load Allowance Groups
            AllowanceGroup        objAllowanceGroup = new AllowanceGroup();
            List <AllowanceGroup> AllowanceGroups   = objAllowanceGroup.Select(Status.Active);

            ddlAllowanceGroup.DataSource     = AllowanceGroups;
            ddlAllowanceGroup.DataValueField = "AllowanceGroupID";
            ddlAllowanceGroup.DataTextField  = "AllowanceGroupName";
            ddlAllowanceGroup.DataBind();

            var statuses = Enum.GetValues(typeof(Status));

            ddlStatus.DataSource = statuses;
            ddlStatus.DataBind();

            LoadWorkareas(CurrentCompanyID);
        }