public ActionResult Create() { ViewBag.Employees = new SelectList(db.AspNetUsers, "Id", "UserName"); //ViewBag.LeaveTypes = new SelectList(db.LeaveTypes, "Id", "Name"); ViewBag.Departments = new SelectList(db.Countries, "Id", "Name"); List <SelectListItem> AgreementTypes = new List <SelectListItem>() { new SelectListItem { Text = "Fiscal year", Value = "1" }, new SelectListItem { Text = "Calender year", Value = "2" }, new SelectListItem { Text = "Contract year", Value = "3" }, }; ViewBag.AgreementTypes = AgreementTypes; UserLeavePolicyViewModel userLeavePolicyViewModel = new UserLeavePolicyViewModel(); return(View(userLeavePolicyViewModel)); //return View(); }
public async Task <ActionResult> Edit(decimal id, string Caller, string leaveUserId = "UserLeavePolicy") { //string userId = User.Identity.GetUserId(); //id =(decimal)db.AspNetUsers.FirstOrDefault(x => x.Id == userId).UserLeavePolicyId; //if (id == null) //{ // return new HttpStatusCodeResult(HttpStatusCode.BadRequest); //} ViewBag.Employees = new SelectList(db.AspNetUsers, "Id", "UserName"); ViewBag.LeaveTypes = new SelectList(db.LeaveTypes, "Id", "Name"); //always remember viewbag name should not be as model name. other wise probelm. if same multilist will not show selected values ViewBag.Departments = new SelectList(db.Countries, "Id", "Name"); UserLeavePolicyViewModel userLeavePolicyViewModel = new UserLeavePolicyViewModel(); UserLeavePolicy userLeavePolicy = await db.UserLeavePolicies.FindAsync(id); userLeavePolicyViewModel.userLeavePolicy = userLeavePolicy; userLeavePolicyViewModel.userLeavePolicyDetail = userLeavePolicy.UserLeavePolicyDetails.AsQueryable <UserLeavePolicyDetail>(); userLeavePolicyViewModel.countries = db.Countries;//.Where(x => x.CountryId == 1).AsQueryable<Department>();//TODO Convert 1 to current user country variable //userLeavePolicyViewModel.departments= depFilterd; userLeavePolicyViewModel.annualOffDays = db.AnnualOffDays.Where(x => x.UserLeavePolicyId == userLeavePolicy.Id).AsQueryable(); IQueryable <AspNetUser> usersFilterd = db.AspNetUsers.Where(x => x.UserLeavePolicyId == id); //foreach (AspNetUser usr in usersFilterd) //{ // //depFilterd = db.Departments.Where(x => x.Id == usr.DepartmentId).Distinct<Department>().ToList<Department>(); //} //List<int> SelectedDeps = new List<int>(new int[] { 1,2 }); List <string> SelectedDeps = new List <string>(); List <string> SelectedEmps = new List <string>(); SelectedDeps = usersFilterd.Select(p => p.CountryId.ToString()).Distinct <string>().ToList <string>(); SelectedEmps = usersFilterd.Select(p => p.Id).Distinct <string>().ToList <string>(); ViewBag.SelectedDepartments = SelectedDeps; ViewBag.SelectedEmployees = SelectedEmps; if (userLeavePolicy.DepartmentPolicy == true) { ViewBag.DepStatus = true; ViewBag.EmpStatus = false; } else { ViewBag.DepStatus = false; ViewBag.EmpStatus = true; } List <SelectListItem> WeekSelectList = new List <SelectListItem>() { new SelectListItem { Text = "Saturday", Value = "6" }, new SelectListItem { Text = "Sunday", Value = "0" }, new SelectListItem { Text = "Monday", Value = "1" }, new SelectListItem { Text = "Tuesday", Value = "2" }, new SelectListItem { Text = "Wednesday", Value = "3" }, new SelectListItem { Text = "Thursday", Value = "4" }, new SelectListItem { Text = "Friday", Value = "5" } }; ViewBag.WeeklyOffDays = WeekSelectList; List <SelectListItem> AgreementTypes = new List <SelectListItem>() { new SelectListItem { Text = "Fiscal year", Value = "1" }, new SelectListItem { Text = "Calender year", Value = "2" }, new SelectListItem { Text = "Contract year", Value = "3" }, }; ViewBag.AgreementTypes = AgreementTypes; List <string> DaysSelected = new List <string>(); foreach (string day in userLeavePolicy.WeeklyOffDays.Split(',')) { //int intDay = int.Parse(day); DaysSelected.Add(day); //DaysSelected.Add() } ViewBag.DaysSelected = DaysSelected; //List<AnnualOffDay> AnnualOffDaysList = new List<AnnualOffDay>(); //int cntr = 0; //foreach (string day in userLeavePolicy.AnnualOffDays.Split(',')) //{ // cntr += 1; // AnnualOffDaysList.Add(new AnnualOffDay { Id = cntr, OffDay = day, Description = "" }); //} //ViewBag.AnnualLeaves = userLeavePolicy.AnnualOffDays;//AnnualOffDaysList; if (userLeavePolicy == null) { return(HttpNotFound()); } //ViewBag.UserId = new SelectList(db.AspNetUsers, "Id", "Hometown", userLeavePolicy.UserId); //return View(userLeavePolicy); //return PartialView("_newRow", IndexId); //for ref only if (Caller == "UserLeavePolicy") { ViewBag.LockAndHide = "False"; return(View(userLeavePolicyViewModel)); //orginal } else { //string CurrentLoginUserId = User.Identity.GetUserId(); ViewBag.LeaveUserId = leaveUserId; ViewBag.CompensatoryLeaveBalance = db.LeaveBalances.FirstOrDefault(x => x.LeaveTypeId == LMS.Constants.Consts.CompensatoryLeaveTypeId && x.UserId == leaveUserId); ViewBag.LockAndHide = "True"; return(PartialView("_Edit", userLeavePolicyViewModel)); } //switch (Caller) //{ // case "LeaveRequest"://Logged In User Id will be sent // ViewBag.CompensatoryLeaveBalance = db.LeaveBalances.FirstOrDefault(x => x.LeaveTypeId == LMS.Constants.Consts.CompensatoryLeaveTypeId && x.UserId == leaveUserId); // ViewBag.LockAndHide = "True"; // return PartialView("_Edit", userLeavePolicyViewModel); // //break; // case "LeaveResponse"://Id of Leave Requested user will be sent // string CurrentLoginUserId = User.Identity.GetUserId(); // ViewBag.CurrentLoginUserId = CurrentLoginUserId; // ViewBag.CompensatoryLeaveBalance = db.LeaveBalances.FirstOrDefault(x => x.LeaveTypeId == LMS.Constants.Consts.CompensatoryLeaveTypeId && x.UserId == CurrentLoginUserId); // ViewBag.LockAndHide = "True"; // return PartialView("_Edit", userLeavePolicyViewModel); // break; // default://user leave policy screen // ViewBag.LockAndHide = "False"; // return View(userLeavePolicyViewModel); //orginal // //break; //} }