コード例 #1
0
        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));
                    }
                }
            }
        }
コード例 #2
0
        public void Register(OccupationVM request)
        {
            var model           = mapper.Map <Occupation>(request);
            var registerCommand = mapper.Map <RegisterNewOccupationCommand>(model);

            bus.SendCommand(registerCommand);
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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;
        }
コード例 #5
0
 public void Update(OccupationVM bestWorkVM)
 {
     //var updateCommand = mapper.Map<UpdateBestWorkTimeCommand>(bestWorkVM);
     //bus.SendCommand(updateCommand);
 }
コード例 #6
0
        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));
                    }
                }
            }
        }