示例#1
0
        public IActionResult Put([FromBody] TelephonyProfileModel model)
        {
            var response = _service.Update(model);

            return(Ok(response));
        }
示例#2
0
        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);
        }