Пример #1
0
        public async Task PutCandidate(Guid id, IFormFile image, IFormFile cv, CandidateInputModel inputCandidate, string currentUsername)
        {
            var candidate = await _applicationDbContext.Candidates.Include(c => c.CandidateLanguages).Include(c => c.CandidateFrameworks).FirstOrDefaultAsync(c => c.Id == id);

            if (candidate != null)
            {
                candidate.FirstName    = inputCandidate.FirstName;
                candidate.LastName     = inputCandidate.LastName;
                candidate.University   = inputCandidate.University;
                candidate.DOB          = inputCandidate.DOB;
                candidate.Email        = inputCandidate.Email;
                candidate.PhoneNumber  = inputCandidate.PhoneNumber;
                candidate.LinkedIn     = inputCandidate.LinkedIn;
                candidate.Facebook     = inputCandidate.Facebook;
                candidate.Status       = inputCandidate.StatusId;
                candidate.Note         = inputCandidate.Note;
                candidate.ModifiedBy   = currentUsername;
                candidate.ModifiedDate = DateTime.Now;

                if (image != null)
                {
                    candidate.Avatar = await SaveFile(image);
                }
                if (cv != null)
                {
                    candidate.CV = await SaveFile(cv);
                }
                var candidateLanguages = candidate.CandidateLanguages;
                foreach (var item in candidateLanguages)
                {
                    item.IsActive     = false;
                    item.ModifiedBy   = currentUsername;
                    item.ModifiedDate = DateTime.Now;
                }
                foreach (var item in inputCandidate.LanguageIds)
                {
                    if (candidateLanguages.Select(c => c.LanguageId).Contains(item))
                    {
                        var cd = candidateLanguages.FirstOrDefault(c => c.LanguageId == item);
                        cd.IsActive     = true;
                        cd.ModifiedBy   = currentUsername;
                        cd.ModifiedDate = DateTime.Now;
                    }
                    else if (!candidateLanguages.Select(c => c.LanguageId).Contains(item))
                    {
                        var candidateLanguage = new CandidateLanguage
                        {
                            Id           = Guid.NewGuid(),
                            CandidateId  = id,
                            LanguageId   = item,
                            IsActive     = true,
                            CreatedBy    = currentUsername,
                            CreatedDate  = DateTime.Now,
                            ModifiedBy   = currentUsername,
                            ModifiedDate = DateTime.Now
                        };
                        await _applicationDbContext.AddAsync(candidateLanguage);
                    }
                }

                var candidateFrameworks = candidate.CandidateFrameworks;
                foreach (var item in candidateFrameworks)
                {
                    item.IsActive     = false;
                    item.ModifiedBy   = currentUsername;
                    item.ModifiedDate = DateTime.Now;
                }
                foreach (var item in inputCandidate.FrameworkIds)
                {
                    if (candidateFrameworks.Select(c => c.FrameworkId).Contains(item))
                    {
                        var cd = candidateFrameworks.FirstOrDefault(c => c.FrameworkId == item);
                        cd.IsActive     = true;
                        cd.ModifiedBy   = currentUsername;
                        cd.ModifiedDate = DateTime.Now;
                    }
                    else if (!candidateFrameworks.Select(c => c.FrameworkId).Contains(item))
                    {
                        var candidateFramework = new CandidateFramework
                        {
                            Id           = Guid.NewGuid(),
                            CandidateId  = id,
                            FrameworkId  = item,
                            IsActive     = true,
                            CreatedBy    = currentUsername,
                            CreatedDate  = DateTime.Now,
                            ModifiedBy   = currentUsername,
                            ModifiedDate = DateTime.Now
                        };
                        await _applicationDbContext.AddAsync(candidateFramework);
                    }
                }
            }
            await _applicationDbContext.SaveChangesAsync();
        }
Пример #2
0
        public async Task AddCandidate(IFormFile image, IFormFile cv, CandidateInputModel inputCandidate, string currentUsername)
        {
            Guid id        = Guid.NewGuid();
            var  candidate = new Candidate
            {
                Id           = id,
                FirstName    = inputCandidate.FirstName,
                LastName     = inputCandidate.LastName,
                University   = inputCandidate.University,
                DOB          = inputCandidate.DOB,
                Status       = inputCandidate.StatusId,
                Email        = inputCandidate.Email,
                PhoneNumber  = inputCandidate.PhoneNumber,
                LinkedIn     = inputCandidate.LinkedIn,
                Facebook     = inputCandidate.Facebook,
                Note         = inputCandidate.Note,
                IsActive     = true,
                CreatedBy    = currentUsername,
                CreatedDate  = DateTime.Now,
                ModifiedBy   = currentUsername,
                ModifiedDate = DateTime.Now,
            };

            if (image != null)
            {
                candidate.Avatar = await SaveFile(image);
            }
            if (cv != null)
            {
                candidate.CV = await SaveFile(cv);
            }
            await _applicationDbContext.AddAsync(candidate);

            foreach (var item in inputCandidate.LanguageIds)
            {
                var candidateLanguage = new CandidateLanguage
                {
                    Id           = Guid.NewGuid(),
                    CandidateId  = id,
                    LanguageId   = item,
                    IsActive     = true,
                    CreatedBy    = currentUsername,
                    CreatedDate  = DateTime.Now,
                    ModifiedBy   = currentUsername,
                    ModifiedDate = DateTime.Now
                };
                await _applicationDbContext.AddAsync(candidateLanguage);
            }
            foreach (var item in inputCandidate.FrameworkIds)
            {
                var candidateFramwork = new CandidateFramework
                {
                    Id           = Guid.NewGuid(),
                    CandidateId  = id,
                    FrameworkId  = item,
                    IsActive     = true,
                    CreatedBy    = currentUsername,
                    CreatedDate  = DateTime.Now,
                    ModifiedBy   = currentUsername,
                    ModifiedDate = DateTime.Now
                };
                await _applicationDbContext.AddAsync(candidateFramwork);
            }
            await _applicationDbContext.SaveChangesAsync();
        }