public IActionResult Put([FromBody] TelephonyProfileModel model) { var response = _service.Update(model); return(Ok(response)); }
public TelephonyProfileModel Update(TelephonyProfileModel model) { var entity = _unitOfWork.Repository <ProfileEntity>() .Include( x => x.Telephony, x => x.General, x => x.User, x => x.HighSchool, x => x.MilitaryService, x => x.CandidateAdditionalData) .FirstOrDefault(x => x.UserId == model.UserId); if (entity != null) { using (var tran = _unitOfWork.BeginTransaction()) { entity.City = model.City; entity.Gender = model.Gender; entity.BirthDate = model.BirthDate; entity.Address = model.Address; entity.Siblings = model.Siblings; entity.Phone = model.Phone; entity.AcademicParents = model.AcademicParents; entity.User.FirstName = model.FirstName; entity.User.LastName = model.LastName; entity.Status = model.Status; if (entity.User.Email != model.Email && !string.IsNullOrWhiteSpace(model.Email)) { var exist = _unitOfWork.Repository <UserEntity>().Set.Any(x => x.Email == model.Email); if (!exist) { entity.User.Email = model.Email; } } if (model.Telephony != null) { if (entity.Telephony == null) { entity.Telephony = new TelephonyEntity(); _unitOfWork.Repository <TelephonyEntity>().Insert(entity.Telephony); } entity.Telephony.Remarks = model.Telephony.Remarks; entity.Telephony.Thoughts = model.Telephony.Thoughts; entity.Telephony.FundingAvailability = model.Telephony.FundingAvailability; entity.Telephony.DateBackFirst = model.Telephony.DateBackFirst; entity.Telephony.DateBackSecond = model.Telephony.DateBackSecond; entity.Telephony.DateBackThird = model.Telephony.DateBackThird; } if (model.CandidateAdditionalData != null) { if (entity.CandidateAdditionalData == null) { entity.CandidateAdditionalData = new CandidateAdditionalDataEntity(); _unitOfWork.Repository <CandidateAdditionalDataEntity>().Insert(entity.CandidateAdditionalData); } entity.CandidateAdditionalData.Difficulties = model.CandidateAdditionalData.Difficulties; entity.CandidateAdditionalData.FamilyDifficulties = model.CandidateAdditionalData.FamilyDifficulties; entity.CandidateAdditionalData.FinancialProblems = model.CandidateAdditionalData.FinancialProblems; entity.CandidateAdditionalData.HealthProblems = model.CandidateAdditionalData.HealthProblems; entity.CandidateAdditionalData.LifeStory = model.CandidateAdditionalData.LifeStory; entity.CandidateAdditionalData.ParticipationDescription = model.CandidateAdditionalData.ParticipationDescription; entity.CandidateAdditionalData.Reason = model.CandidateAdditionalData.Reason; entity.CandidateAdditionalData.SituationDetails = model.CandidateAdditionalData.SituationDetails; entity.CandidateAdditionalData.Status = model.CandidateAdditionalData.Status; } if (model.General != null) { if (entity.General == null) { entity.General = new GeneralEntity(); _unitOfWork.Repository <GeneralEntity>().Insert(entity.General); } entity.General.Disabilities = model.General.Disabilities; entity.General.Points = model.General.Points; entity.General.PsychometricGrade = model.General.PsychometricGrade; entity.General.WorthyOfAdvancment = model.General.WorthyOfAdvancment; var gp_delete = _unitOfWork.Repository <GeneralParticipationEntity>().Set.Where(x => x.GeneralId == entity.General.Id).ToList(); _unitOfWork.Repository <GeneralParticipationEntity>().DeleteRange(gp_delete); var gp_new = _unitOfWork.Repository <ParticipationProgramEntity>().Set .Join(model.General.ParticipationInPrograms.Where(x => x.Value), x => x.ProgramName, x => x.Id, (x, y) => new GeneralParticipationEntity { GeneralId = entity.General.Id, Description = y.Description, ProgramId = x.Id }) .ToList(); _unitOfWork.Repository <GeneralParticipationEntity>().InsertRange(gp_new); } if (model.HighSchool != null) { if (entity.HighSchool == null) { entity.HighSchool = new HighSchoolEntity(); _unitOfWork.Repository <HighSchoolEntity>().Insert(entity.HighSchool); } entity.HighSchool.Name = model.HighSchool.Name; entity.HighSchool.Year = model.HighSchool.Year; } if (model.MilitaryService != null) { if (entity.MilitaryService == null) { entity.MilitaryService = new MilitaryServiceEntity(); _unitOfWork.Repository <MilitaryServiceEntity>().Insert(entity.MilitaryService); } entity.MilitaryService.Details = model.MilitaryService.Details; entity.MilitaryService.Role = model.MilitaryService.Role; entity.MilitaryService.TypeOfSevice = model.MilitaryService.TypeOfService; entity.MilitaryService.EaseOfService = model.MilitaryService.EaseOfService; entity.MilitaryService.Ease = model.MilitaryService.Ease; } _unitOfWork.Repository <ProfileEntity>().Update(entity); tran.Commit(); } return(model); } return(null); }