public bool UpdateTime(UserHoursViewModel data) { var selectedUsers = data.Users.Where(x => x.IsSelected == true); if (data.AddHours == true) { foreach (var user in selectedUsers) { var userFound = dbContext.Users.Include(x => x.Billing).SingleOrDefault(x => x.Id == user.UserId); userFound.Billing.MinutesWorked += (data.MinutesToEdit + (data.HoursToEdit * 60)); } } else { foreach (var user in selectedUsers) { var userFound = dbContext.Users.Include(x => x.Billing).SingleOrDefault(x => x.Id == user.UserId); var newTime = userFound.Billing.MinutesWorked -= (data.MinutesToEdit + (data.HoursToEdit * 60)); if (newTime < 0) { return(true); } } } dbContext.SaveChanges(); return(false); }
public IActionResult EditHours(UserHoursViewModel data) { if (!ModelState.IsValid) { return(View(data)); } var error = groupService.UpdateTime(data); if (error) { ModelState.AddModelError("", "Jeden z użytkowników miałby wartość przepracowanych godzin mniejszą od 0"); return(View(data)); } return(RedirectToAction("Index")); }
public UserHoursViewModel GetUsersInGroup(string group, string userId) { UserHoursViewModel vm; //vm for all group if (group != null) { var groupEnum = (GroupEnum)Enum.Parse(typeof(GroupEnum), group); vm = new UserHoursViewModel { Users = dbContext.Users.Where(x => groupEnum == x.Group) .Select(x => new HoursEditUserListViewModel { UserId = x.Id, IsSelected = true, FullName = string.Format($"{x.FirstName} {x.LastName}, {x.UserName}") }).ToList() }; return(vm); } //vm only for 1 user vm = new UserHoursViewModel { Users = dbContext.Users.Where(x => userId == x.Id) .Select(x => new HoursEditUserListViewModel { UserId = x.Id, IsSelected = true, FullName = string.Format($"{x.FirstName} {x.LastName}, {x.UserName}") }).ToList() }; return(vm); }