예제 #1
0
        public async Task <IActionResult> PutCandidateLanguage(int id, CandidateLanguage candidateLanguage)
        {
            if (id != candidateLanguage.Id)
            {
                return(BadRequest());
            }

            _context.Entry(candidateLanguage).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CandidateLanguageExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public ActionResult DeleteConfirmed(int CandidateLanguageID)
        {
            CandidateLanguage CandidateLanguage = db.CandidateLanguage.Find(CandidateLanguageID);

            db.CandidateLanguage.Remove(CandidateLanguage);
            db.SaveChanges();
            return(RedirectToAction("Index", "CandidatePersonalInfProfile"));
        }
예제 #3
0
        public ActionResult EditingLanguage_Create(CandidateLanguage obj)
        {
            new Language().Insert(SessionItems.CurrentUser.Id, obj);

            Resume resume = Session[typeof(Resume).FullName] as Resume;

            resume.Languages.Add(obj);
            Session[typeof(Resume).FullName] = resume;
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
예제 #4
0
        public ActionResult EditingLanguage_Destroy(CandidateLanguage obj)
        {
            new Language().Delete(obj);
            Resume resume = Session[typeof(Resume).FullName] as Resume;

            if (resume.Languages.Any(x => x.Id.Equals(obj.Id)))
            {
                int idx = resume.Languages.Select((v, i) => new { objt = v, index = i }).FirstOrDefault(x => x.objt.Id.Equals(obj.Id)).index;
                resume.Languages.RemoveAt(idx);
            }
            Session[typeof(Resume).FullName] = resume;
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Edit([Bind(Include = "CandidateLanguageID,UserID,Language,Read,Write,Speak")] CandidateLanguage CandidateLanguage)
        {
            CandidateLanguage.UpdateDate = DateTime.Now;
            CandidateLanguage.UserID     = User.Identity.GetUserId();
            if (ModelState.IsValid)
            {
                db.Entry(CandidateLanguage).State = EntityState.Modified;

                db.SaveChanges();
                return(RedirectToAction("Index", "CandidatePersonalInfProfile"));
            }
            return(View(CandidateLanguage));
        }
        // GET: CandidateLanguage/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CandidateLanguage CandidateLanguage = db.CandidateLanguage.Find(id);

            if (CandidateLanguage == null)
            {
                return(RedirectToAction("Index", "CandidatePersonalInfProfile"));
            }
            return(View(CandidateLanguage));
        }
        // GET: CandidateLanguage/Delete/5
        public ActionResult Delete(int?CandidateLanguageID, String Language)
        {
            ViewBag.Language = Language;
            if (CandidateLanguageID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CandidateLanguage CandidateLanguage = db.CandidateLanguage.Find(CandidateLanguageID);

            if (CandidateLanguage == null)
            {
                return(RedirectToAction("Index", "CandidatePersonalInfProfile"));
            }
            return(View(CandidateLanguage));
        }
예제 #8
0
        public async Task <CandidateLanguage> PostCandidateLanguage(CandidateLanguage candidateLanguage)
        {
            _oCandidateLanguage = new CandidateLanguage();
            using (var httpClient = new HttpClient(_clientHandler))
            {
                StringContent content = new StringContent(JsonConvert.SerializeObject(candidateLanguage), Encoding.UTF8, "application/json");

                using (var response = await httpClient.PostAsync("https://localhost:44304/api/CandidateLanguages", content))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    _oCandidateLanguage = JsonConvert.DeserializeObject <CandidateLanguage>(apiResponse);
                }
            }
            return(_oCandidateLanguage);
        }
예제 #9
0
        public ResultModel Insert(string userId, CandidateLanguage obj)
        {
            CandidateLanguage objt = new CandidateLanguage();

            LoadModel(obj, objt);
            objt.Id = Guid.NewGuid();

            try
            {
                DataContext.CandidateLanguages.InsertOnSubmit(objt);
                DataContext.SubmitChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                DataContext.SubmitChanges();
            }
            return(ResultModel.SuccessResult());
        }
예제 #10
0
        public ActionResult AddCandidateLanguage(CandidateLanguage cl)
        {
            ViewBag.UserId = new SelectList(db.AspNetUsers, "Id", "Email");
            string id = User.Identity.GetUserId();

            cl.UserId = id;

            if (cl.Id > 0)
            {
                db.Entry(cl).State = EntityState.Modified;
                db.SaveChanges();
            }
            else
            {
                db.CandidateLanguages.Add(cl);
                db.SaveChanges();
            }
            return(View(cl));
        }
예제 #11
0
 public ResultModel Delete(CandidateLanguage obj)
 {
     try
     {
         CandidateLanguage objt = DataContext.CandidateLanguages.Where(x => x.Id.Equals(obj.Id)).FirstOrDefault();
         if (objt != null && !objt.Id.Equals(Guid.Empty))
         {
             DataContext.CandidateLanguages.DeleteOnSubmit(objt);
             DataContext.SubmitChanges();
         }
         return(ResultModel.SuccessResult());
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         // Provide for exceptions.
         return(ResultModel.FailResult());
     }
 }
        // GET: CandidateLanguage/Edit/5
        public ActionResult Edit(int?CandidateLanguageID, string LanguageType, int?LanguageID)
        {
            ViewBag.LngID      = LanguageID;
            ViewBag.Language   = LanguageType;
            ViewBag.Decisionst = new SelectList(db.Decision, "IntDecision", "Decision1");
            if (CandidateLanguageID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CandidateLanguage CandidateLanguage = db.CandidateLanguage.Find(CandidateLanguageID);

            //CandidateLanguage.UpdateDate = DateTime.Now;
            if (CandidateLanguage == null)
            {
                return(RedirectToAction("Index", "CandidatePersonalInfProfile"));
            }

            return(View(CandidateLanguage));
        }
예제 #13
0
        public async Task <ActionResult <CandidateLanguage> > PostCandidateLanguage(CandidateLanguage candidateLanguage)
        {
            candidateLanguage.Candidate = await _context.Candidate.FindAsync(candidateLanguage.CandidateId);

            candidateLanguage.Candidate.User = await _context.User.FindAsync(candidateLanguage.Candidate.UserId);

            candidateLanguage.Candidate.Country = await _context.Country.FindAsync(candidateLanguage.Candidate.CountryId);

            candidateLanguage.Candidate.SalaryWish = await _context.SalaryWish.FindAsync(candidateLanguage.Candidate.SalaryWishId);

            candidateLanguage.Candidate.DrivingLicence = await _context.DrivingLicence.FindAsync(candidateLanguage.Candidate.DrivingLicenceId);

            candidateLanguage.Language = await _context.Language.FindAsync(candidateLanguage.LanguageId);

            candidateLanguage.LanguageLevel = await _context.LanguageLevel.FindAsync(candidateLanguage.LanguageLevelId);

            _context.CandidateLanguage.Add(candidateLanguage);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetCandidateLanguage", new { id = candidateLanguage.Id }, candidateLanguage));
        }
예제 #14
0
        public async Task <IActionResult> PutCandidateLanguage(int Id, CandidateLanguage candidateLanguage)
        {
            _oCandidateLanguage = new CandidateLanguage();
            using (var httpClient = new HttpClient(_clientHandler))
            {
                StringContent content = new StringContent(JsonConvert.SerializeObject(candidateLanguage), Encoding.UTF8, "application/json");

                using (var response = await httpClient.PutAsync("https://localhost:44304/api/CandidateLanguages/" + Id, content))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        _oCandidateLanguage = JsonConvert.DeserializeObject <CandidateLanguage>(apiResponse);
                        return(Ok(_oCandidateLanguage));
                    }
                    else
                    {
                        return(BadRequest());
                    }
                }
            }
        }
        public ActionResult Create([Bind(Include = "CandidateLanguageID,UserID,Language,Read,Write,Speak")] CandidateLanguage CandidateLanguage)
        {
            String UserID = User.Identity.GetUserId();

            if (ModelState.IsValid)
            {
                if (db.CandidateLanguage.Any(p => p.UserID == UserID & p.Language == CandidateLanguage.Language))
                {
                    ModelState.AddModelError("Language", "You have already saved this language.");
                    ViewBag.Language   = new SelectList(db.ListLanguage, "LanguageID", "Language");
                    ViewBag.Decisionst = new SelectList(db.Decision, "IntDecision", "Decision1");
                }
                else
                {
                    CandidateLanguage.UpdateDate = DateTime.Now;
                    CandidateLanguage.UserID     = User.Identity.GetUserId();
                    db.CandidateLanguage.Add(CandidateLanguage);
                    db.SaveChanges();
                    return(RedirectToAction("Index", "CandidatePersonalInfProfile"));
                }
            }

            return(View(CandidateLanguage));
        }
예제 #16
0
        public async Task <string> UpdateProfileAsync(string candidateId, UpdateCandidateProfileViewModel model)
        {
            var candidate = this.candidatesRepository
                            .All()
                            .FirstOrDefault(c => c.Id == candidateId);

            if (candidate == null)
            {
                return(null);
            }

            candidate.FirstName      = model.FirstName;
            candidate.LastName       = model.LastName;
            candidate.PhoneNumber    = model.PhoneNumber;
            candidate.ContactAddress = model.ContactAddress;
            candidate.Education      = model.Education;
            candidate.AboutMe        = model.SanitizedAboutMe;

            if (model.ProfilePicture != null)
            {
                if (candidate.ProfilePictureUrl != null)
                {
                    CloudinaryService.DeleteFile(this.cloudinary, model.ApplicationUserId + PictureNameAddIn);
                }

                var pictureUrl = await CloudinaryService.UploadImageAsync(this.cloudinary, model.ProfilePicture, model.ApplicationUserId + PictureNameAddIn);

                if (pictureUrl == null)
                {
                    return(null);
                }

                candidate.ProfilePictureUrl = pictureUrl;
            }

            candidate.ModifiedOn = DateTime.UtcNow;

            var candidateLanguagesIds = this.candidateLanguagesRepository
                                        .AllAsNoTracking()
                                        .Where(cl => cl.CandidateId == candidateId)
                                        .Select(cl => cl.LanguageId)
                                        .ToList();

            // Add new ones
            foreach (var languageId in model.LanguagesIds)
            {
                if (!candidateLanguagesIds.Contains(languageId))
                {
                    var language = new CandidateLanguage
                    {
                        LanguageId  = languageId,
                        CandidateId = candidate.Id,
                        CreatedOn   = DateTime.UtcNow,
                    };
                    await this.candidateLanguagesRepository.AddAsync(language);
                }
            }

            // Delete old ones
            foreach (var languageId in candidateLanguagesIds)
            {
                if (!model.LanguagesIds.Contains(languageId))
                {
                    var languages = this.candidateLanguagesRepository
                                    .All()
                                    .Where(cl => cl.LanguageId == languageId &&
                                           cl.CandidateId == candidate.Id)
                                    .FirstOrDefault();

                    this.candidateLanguagesRepository.Delete(languages);
                }
            }

            var candidateSkillsIds = this.candidateSkillsRepository
                                     .AllAsNoTracking()
                                     .Where(cs => cs.CandidateId == candidateId)
                                     .Select(cs => cs.SkillId)
                                     .ToList();

            // Add new ones
            foreach (var skillId in model.SkillsIds)
            {
                if (!candidateSkillsIds.Contains(skillId))
                {
                    var skill = new CandidateSkill
                    {
                        SkillId     = skillId,
                        CandidateId = candidate.Id,
                        CreatedOn   = DateTime.UtcNow,
                    };
                    await this.candidateSkillsRepository.AddAsync(skill);
                }
            }

            // Delete old ones
            foreach (var skillId in candidateSkillsIds)
            {
                if (!model.SkillsIds.Contains(skillId))
                {
                    var skills = this.candidateSkillsRepository
                                 .All()
                                 .Where(cs => cs.SkillId == skillId &&
                                        cs.CandidateId == candidate.Id)
                                 .FirstOrDefault();

                    this.candidateSkillsRepository.Delete(skills);
                }
            }

            try
            {
                this.candidatesRepository.Update(candidate);
                await this.candidatesRepository.SaveChangesAsync();

                await this.candidateLanguagesRepository.SaveChangesAsync();

                await this.candidateSkillsRepository.SaveChangesAsync();

                return(candidate.Id);
            }
            catch (Exception)
            {
                return(null);
            }
        }
예제 #17
0
 public Language(CandidateLanguage obj)
 {
     ShareFunctions.CopyPropertiesTo <CandidateLanguage, Language>(obj, this);
 }
예제 #18
0
 private void LoadModel(CandidateLanguage source, CandidateLanguage dest)
 {
     ShareFunctions.CopyPropertiesTo <CandidateLanguage, CandidateLanguage>(source, dest);
     dest.AspNetUser = DataContext.AspNetUsers.SingleOrDefault(x => x.Id.Equals(source.UserID));
 }
예제 #19
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();
        }
예제 #20
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();
        }
예제 #21
0
        public async Task <string> CreateProfileAsync(CreateCandidateProfileInputModel model)
        {
            var candidate = AutoMapperConfig.MapperInstance.Map <Candidate>(model);

            if (model.ProfilePicture != null)
            {
                var pictureUrl = await CloudinaryService.UploadImageAsync(this.cloudinary, model.ProfilePicture, model.ApplicationUserId + PictureNameAddIn);

                if (pictureUrl == null)
                {
                    return(null);
                }

                candidate.ProfilePictureUrl = pictureUrl;
            }

            candidate.CreatedOn = DateTime.UtcNow;

            var candidateLanguages = new List <CandidateLanguage>();

            foreach (var languageId in model.LanguagesIds)
            {
                var language = new CandidateLanguage
                {
                    Candidate  = candidate,
                    LanguageId = languageId,
                    CreatedOn  = DateTime.UtcNow,
                };
                candidateLanguages.Add(language);
            }

            var candidateSkills = new List <CandidateSkill>();

            foreach (var skillId in model.SkillsIds)
            {
                var skill = new CandidateSkill
                {
                    Candidate = candidate,
                    SkillId   = skillId,
                    CreatedOn = DateTime.UtcNow,
                };
                candidateSkills.Add(skill);
            }

            try
            {
                await this.candidatesRepository.AddAsync(candidate);

                await this.candidateLanguagesRepository.AddRangeAsync(candidateLanguages);

                await this.candidateSkillsRepository.AddRangeAsync(candidateSkills);

                await this.candidatesRepository.SaveChangesAsync();

                await this.candidateLanguagesRepository.SaveChangesAsync();

                await this.candidateSkillsRepository.SaveChangesAsync();

                return(candidate.Id);
            }
            catch (Exception)
            {
                return(null);
            }
        }