public void UpdateOccupationBestWorkTime(string[] selectedBestWorkTime, OccupationVM occupationToUpdate) { if (occupationToUpdate.BestWorkTimes == null) { occupationToUpdate.BestWorkTimes = new List <OccupationBestWorkTimeVM>(); } var all = bestWorkTimeRepository.GetAll(); var selectedBestWorkTimeHS = new HashSet <string>(selectedBestWorkTime); var occupationBestWorkTime = new HashSet <int>(occupationToUpdate.BestWorkTimes.Select(c => c.BestWorkTime.Id)); occupationBestWorkTimeRepository.RemoveAll(occupationToUpdate.Id); foreach (var bestWorkTime in all) { if (selectedBestWorkTimeHS.Contains(bestWorkTime.Id.ToString())) { if (!occupationBestWorkTime.Contains(bestWorkTime.Id)) { occupationToUpdate.BestWorkTimes.Add(new OccupationBestWorkTimeVM { OccupationId = occupationToUpdate.Id, BestWorkTimeId = bestWorkTime.Id }); } } else { if (occupationBestWorkTime.Contains(bestWorkTime.Id)) { var bestWorkTimeToRemove = occupationToUpdate.BestWorkTimes.SingleOrDefault(i => i.BestWorkTimeId == bestWorkTime.Id); occupationBestWorkTimeRepository.Remove(mapper.Map <OccupationBestWorkTime>(bestWorkTimeToRemove)); } } } }
public void Register(OccupationVM request) { var model = mapper.Map <Occupation>(request); var registerCommand = mapper.Map <RegisterNewOccupationCommand>(model); bus.SendCommand(registerCommand); }
public async Task <IActionResult> OccupationAsync([Bind("People, PeopleId, WorkAvailabilities, BestWorkTimes, Id")] OccupationVM request, string[] selectWA, string[] selectBT) { occupationService.UpdateOccupationBestWorkTime(selectBT, request); occupationService.UpdateOccupationWorkAvailability(selectWA, request); var people = await peopleService.GetByEmailAsync(User.Identity.Name); people.Occupation = request; peopleService.Update(people); PopulateAssignedWAData(people.Occupation); PopulateAssignedBTData(people.Occupation); return(RedirectToAction("OccupationAsync", people.Id)); }
private void PopulateAssignedBTData(OccupationVM occupation) { var all = bwtService.GetAll(); var occupationWA = new HashSet <int>(occupation.BestWorkTimes.Select(c => c.BestWorkTimeId)); var viewModel = new List <SelectedItems>(); foreach (var item in all) { viewModel.Add(new SelectedItems { Id = item.Id, DescriptionEN = item.DescriptionEN, DescriptionPT = item.DescriptionPT, Assigned = occupationWA.Contains(item.Id) }); } ViewData["BestWorkTimes"] = viewModel; }
public void Update(OccupationVM bestWorkVM) { //var updateCommand = mapper.Map<UpdateBestWorkTimeCommand>(bestWorkVM); //bus.SendCommand(updateCommand); }
public void UpdateOccupationWorkAvailability(string[] selectedWorkAvailability, OccupationVM occupationToUpdate) { if (occupationToUpdate.WorkAvailabilities == null) { occupationToUpdate.WorkAvailabilities = new List <OccupationWorkAvailabilityVM>(); } var all = bestWorkTimeRepository.GetAll(); var selectedWAHS = new HashSet <string>(selectedWorkAvailability); var occupationWA = new HashSet <int>(occupationToUpdate.WorkAvailabilities.Select(c => c.WorkAvailability.Id)); occupationWorkAvailRepository.RemoveAll(occupationToUpdate.Id); foreach (var workAval in all) { if (selectedWAHS.Contains(workAval.Id.ToString())) { if (!occupationWA.Contains(workAval.Id)) { occupationToUpdate.WorkAvailabilities.Add(new OccupationWorkAvailabilityVM { OccupationId = occupationToUpdate.Id, WorkAvailabilityId = workAval.Id }); } } else { if (occupationWA.Contains(workAval.Id)) { var workAvalToRemove = occupationToUpdate.WorkAvailabilities.SingleOrDefault(i => i.WorkAvailabilityId == workAval.Id); occupationWorkAvailRepository.Remove(mapper.Map <OccupationWorkAvailability>(workAvalToRemove)); } } } }