public void CreateOrUpdate(CreatedEduSubjectPreference model)
        {
            var subjectPreferences = _subjectPreferenceRepository
                                     .GetPagedList(predicate: a => a.SystemUserId == model.SystemUserId, pageSize: int.MaxValue);

            if (subjectPreferences.TotalCount > 0)
            {
                _subjectPreferenceRepository.Delete(subjectPreferences.Items);
            }

            foreach (var informalExperience in model.FieldOfStudies)
            {
                _subjectPreferenceRepository.Insert(new EduSubjectPreference
                {
                    FieldOfStudyId    = informalExperience.Id,
                    OtherFieldOfStudy = informalExperience.OtherValue,
                    SystemUserId      = model.SystemUserId
                });
            }

            var systemUser = _systemUserRepository.GetFirstOrDefault(predicate: a => a.SystemUserId == model.SystemUserId, include: a => a.Include(b => b.EduUser));

            if (systemUser == null)
            {
                throw new ApplicationException("System User Id is invalid");
            }

            var eduUser = systemUser.EduUser.SingleOrDefault();

            eduUser.PreferredMenteeGrade = model.PreferredMenteeGrade;
            _eduUserRepository.Update(eduUser);
            _unitOfWork.SaveChanges();
        }
Ejemplo n.º 2
0
        public ActionResult CreateOrUpdate([FromRoute] int systemUserId, [FromBody] EduSubjectPreferenceViewModel model)
        {
            var informalExperience = new CreatedEduSubjectPreference()
            {
                FieldOfStudies       = model.FieldOfStudies,
                SystemUserId         = systemUserId,
                PreferredMenteeGrade = model.PreferredMenteeGrade
            };

            _subjectPreferenceService.CreateOrUpdate(informalExperience);
            return(Ok(MessageHelper.Success("The subject preferences have been updated.")));
        }