public ActionResult delete(FormCollection Id) { int id = 0; int.TryParse(Id["id"], out id); if (id == 0) { return(RedirectToAction("InterviewIndex")); } try { Interview del = db.Interviews.Where(x => x.Id == id).FirstOrDefault(); string PhotoName = del.Photolink; if (PhotoName != null) { string pathToDel = System.IO.Path.Combine( Server.MapPath("~/Image"), PhotoName); if (System.IO.File.Exists(pathToDel)) { System.IO.File.Delete(pathToDel); //Session["DeleteSuccess"] = "Yes"; } } db.Interviews.Remove(del); db.SaveChanges(); ViewBag.message = "Successfully deleted"; return(RedirectToAction("InterviewIndex")); } catch (Exception Ex) { ViewBag.message = Ex.Message; return(RedirectToAction("InterviewIndex")); } }
// // Summary: // /// Method responsible for initializing the validator. /// // // Parameters: // personRepository: // The personRepository param. // // interviewRepository: // The interviewRepository param. // public InterviewValidator(IPersonRepository personRepository, IInterviewRepository interviewRepository) { RuleFor(x => x.SchedulingDate) .NotEmpty() .Must((x) => !(x.DayOfWeek == DayOfWeek.Saturday || x.DayOfWeek == DayOfWeek.Sunday)) .WithMessage("Não é permitido o agendamento de entrevistas para o final de semana.") .Must((x) => x.Hour >= 13 && x.Hour <= 20) .WithMessage("Não é permitido o agendamento fora do período (13:00 - 20:00).") .Must((x) => x.Minute == 0 || x.Minute == 30) .WithMessage("O horário de inicio e termino das entrevistas devem sempre terminar em 00 ou 30(ex: 14:30, 16:00).") .MustAsync(async(request, val, token) => { Interview interview = await interviewRepository.FindInterviewByPersonIdAndDate(request.PersonId, request.SchedulingDate); return(interview is null); }) .WithMessage("Deve haver um intervalo de 3 horas entre as entrevistas para o mesmo candidato no mesmo dia.") .MustAsync(async(request, val, token) => { Interview interview = await interviewRepository.FindInterviewBySquadAndDate(request.Squad, request.SchedulingDate); return(interview is null); }) .WithMessage("Deve haver um intervalo de 3 horas entre as entrevistas para o mesmo squad no mesmo dia."); RuleFor(x => x.Squad) .IsInEnum() .WithMessage("Squad inválido, forneça opções entre 1 - 8."); RuleFor(x => x.PersonId) .NotEmpty() .MustAsync(async(request, val, token) => { Person person = await personRepository.FindAsync(val); return(person != null); }).WithMessage("O valor informado em PersonId não localizado no banco de dados.") .MustAsync(async(request, val, token) => { Interview interview = await interviewRepository.FindInterviewCurrentYearByPersonIdAndSquad(request.PersonId, request.Squad); if (interview is null) { return(true); } if (request.Id is null) { return(false); } if (request.Id != null && interview.Id == request.Id) { return(true); } return(false); }) .WithMessage("Já existe uma entrevista agendada para este candidato e squad neste ano."); }
public async Task <bool> TestFor_UpdateInterview() { //Arrange var res = false; var _interviewUpdate = new Interview() { InterviewId = "5f1025b2587fb74450a61c78", InterviewName = "NameUpdate", Interviewer = "Interviewer", InterviewUser = "******", UserSkills = ".net", InterviewDate = DateTime.Now, InterviewTime = DateTime.UtcNow, InterViewsStatus = InterviewStatus.Done, TInterViews = TechnicalInterviewStatus.Pass, Remark = "OK" }; service.Setup(repo => repo.AddInterview(_interview)).ReturnsAsync(_interview); var result = await _interviewTS.AddInterview(_interview); //Action service.Setup(repos => repos.UpdateInterview(result.InterviewId, _interviewUpdate)).ReturnsAsync(_interview); var resultUpdate = await _interviewTS.UpdateInterview(result.InterviewId, _interviewUpdate); //Assertion if (resultUpdate == _interview) { res = true; } //final result displaying in text file await File.AppendAllTextAsync("../../../../output_revised.txt", "TestFor_UpdateInterview=" + res + "\n"); return(res); }
public async Task <ActionResult> Create(IFormCollection collection) { try { // TODO: Add insert logic here interview = new Interview { Report = "", Start = DateTime.Now, Finish = DateTime.Now, LibraryId = 1, CandidateId = Convert.ToInt16(collection["CandidateId"]), Candidate = new Candidate() }; await _interviewService.Create(interview); Interview createdInterview = await _interviewService.GetbyId(interview.Id); return(RedirectToAction("Create", "Test", new { candidateId = createdInterview.Id })); } catch { return(View()); } }
public JsonResult InterviewData(Guid userId, Guid offerId, Guid employeeId, String date, String time, String address, String note) { var interview = new Interview(); interview.Date = date; interview.Time = time; interview.Address = address; interview.Note = note; interview.UserID = userId; interview.OfferID = offerId; interview.EmployeeID = employeeId; interview.Status = "waiting"; var checkInsertInterview = new InterviewDao().InsertInterview(interview); if (checkInsertInterview == false) { return(Json(new { status = false })); } var checkUpdate = new AppliedCandidateDao().UpdateStatus(userId, offerId, "Phỏng vấn"); return(Json(new { status = true })); }
public async Task <IActionResult> Login(LoginModel model) { if (ModelState.IsValid) { Interview user = await db.Interviews.FirstOrDefaultAsync(u => u.Name == model.Name); if (user != null) { await Authenticate(model.Name); // аутентификация return(Redirect("~/api/survey")); } if (user == null) { // добавляем пользователя в бд db.Interviews.Add(new Interview { Name = model.Name }); await db.SaveChangesAsync(); await Authenticate(model.Name); // аутентификация return(Redirect("~/api/survey")); } ModelState.AddModelError("", "Некорректные логин и(или) пароль"); } return(View(model)); }
/// <summary> /// Injecting service object into Test class constructor /// </summary> public FuctionalTests() { _interviewTS = new InterviewTrackerServices(service.Object); _interviewUserTS = new UserInterviewTrackerServices(serviceUser.Object); _user = new ApplicationUser() { UserId = "5f0ec59dce04c32fb4d3160a", FirstName = "Name1", LastName = "Last1", Email = "*****@*****.**", ReportingTo = "Reportingto", UserTypes = UserType.Developer, Stat = Status.Locked, MobileNumber = 9631438113 }; _interview = new Interview() { InterviewId = "5f10259f587fb74450a61c77", InterviewName = "Name1", Interviewer = "Interviewer-1", InterviewUser = "******", UserSkills = ".net", InterviewDate = DateTime.Now, InterviewTime = DateTime.UtcNow, InterViewsStatus = InterviewStatus.Done, TInterViews = TechnicalInterviewStatus.Pass, Remark = "OK" }; }
private void LogInterview(Interview interview) { var duration = interview.Started.HasValue ? DateTime.Now - interview.Started.Value : TimeSpan.Zero; var interviewData = new { interview.Status, interview.Outcome, Duration = duration, Packet = interview.Packet.Name, PrimaryQuestions = interview.PrimaryQuestions.Select(q => q.Challenge).ToArray(), SecondaryQuestions = interview.SecondaryQuestions.Select(q => q.Challenge).ToArray(), SuspectNote = interview.SuspectNotes.First(), SuspectType = interview.Roles.First().Type, SuspectTraits = interview.Roles.First().Traits, }; var strData = JsonConvert.SerializeObject(interviewData); Logger.LogInformation( "Interview completed at {Time}: {Data}", DateTime.Now, strData ); }
public async Task <IActionResult> PutInterview(int id, Interview interview) { if (id != interview.InterviewId) { return(BadRequest()); } _context.Entry(interview).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!InterviewExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <Interview> > PostInterview(Interview interview) { _context.Interviews.Add(interview); await _context.SaveChangesAsync(); return(CreatedAtAction("GetInterview", new { id = interview.InterviewId }, interview)); }
public InterviewOutcome GuessSuspectRole(Interview interview, bool guessIsRobot) { var actualRole = interview.Roles[0].Type; InterviewOutcome outcome; if (guessIsRobot) { outcome = actualRole == SuspectRoleType.Human ? InterviewOutcome.WronglyGuessedRobot : InterviewOutcome.CorrectlyGuessedRobot; } else { outcome = actualRole == SuspectRoleType.Human ? InterviewOutcome.CorrectlyGuessedHuman : InterviewOutcome.WronglyGuessedHuman; } interview.Status = InterviewStatus.Finished; interview.Outcome = outcome; LogInterview(interview); return(outcome); }
public ActionResult Edit(InterviewViewModel ViewModel) { Interview interview = db.Interviews.Find(ViewModel.interview.id); db.Entry(interview).CurrentValues.SetValues(ViewModel.interview); interview.Applications.Clear(); if (ViewModel.applications != null) { foreach (var application in ViewModel.applications) { interview.Applications.Add(db.Applications.Find(application.id)); } } try { db.SaveChanges(); } catch (Exception e) { Session["FlashMessage"] = "Failed to edit interview timeslot." + e.Message; ViewBag.statusList = new SelectList(db.InterviewStatus, "id", "name", interview.status_id); ViewBag.programList = new SelectList(db.Programs.Where(p => p.require_interview), "id", "name"); ViewBag.venueList = new SelectList(db.InterviewVenues.Where(v => v.status), "id", "name"); return(View(ViewModel)); } return(RedirectToAction("Index")); }
public async Task <IActionResult> Edit(int id, [Bind("InterviewId,EmployeeId,ApplicationId,InterviewDate")] Interview interview) { if (id != interview.InterviewId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(interview); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!InterviewExists(interview.InterviewId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ApplicationId"] = interview.ApplicationId; ViewData["EmployeeId"] = interview.EmployeeId; return(View(interview)); }
private void EnsureIsSuspect(Interview interview) { if (Context.ConnectionId != interview.SuspectConnectionID) { throw new Exception("Only the suspect can issue this command for session " + SessionID); } }
private async Task ShowInducerPrompt(Interview interview) { await Clients .Client(Service.GetInterviewerConnectionID(interview)) .ShowInducerPrompt(interview.InterferencePattern.SolutionSequence); await Clients .Client(Service.GetSuspectConnectionID(interview)) .WaitForInducer(); if (interview.Role.Type == SuspectRoleType.Human) { await Clients .GroupExcept(SessionID, Service.GetInterviewerConnectionID(interview), Service.GetSuspectConnectionID(interview)) .SpectatorWaitForInducer( interview.Role, interview.InterferencePattern.SolutionSequence, interview.InterferencePattern.Connections.ToJaggedArray(val => (int)val), interview.InterferencePattern.CellContents.ToJaggedArray(val => val ?? string.Empty) ); } else { await Clients .GroupExcept(SessionID, Service.GetInterviewerConnectionID(interview), Service.GetSuspectConnectionID(interview)) .SpectatorWaitForInducer( interview.Role, interview.InterferencePattern.SolutionSequence ); } }
public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var interview = await _context.Interviews.Include(i => i.Interviewee).Include(i => i.Interviewer).Include(i => i.Position) .FirstOrDefaultAsync(m => m.InterviewId == id); if (interview == null) { return(NotFound()); } Interview interview1 = _context.Interviews.FirstOrDefault(i => i.Position.Applications.Any(a => a.AppUser.UserName == User.Identity.Name && a.StatusType == "Accepted")); List <AppUser> colleges = _context.Users.Where(u => u.Company.AppUsers.Any(a => a.UserName == User.Identity.Name)).ToList(); if (User.IsInRole("CSO") || interview1 != null || colleges.Contains(interview.Interviewer)) { return(View(interview)); } else { return(View("Error", new string[] { "You are not authorized to edit this interview!" })); } }
private async Task SetPacket(Interview interview, int index) { Service.SetPacketAndInducer(interview, index); await Clients.Group(SessionID) .SetPacket(interview.Packet.Name, interview.Packet.Prompt); }
private async Task SetSuspectRole(Interview interview) { var suspectClient = Clients .Client(Service.GetSuspectConnectionID(interview)); var pattern = interview.InterferencePattern; if (interview.Role.Type == SuspectRoleType.Human) { await suspectClient .SetRoleWithPattern( interview.Role, pattern.Connections.ToJaggedArray(val => (int)val), pattern.CellContents.ToJaggedArray(val => val ?? string.Empty) ); await suspectClient.ShowInducer(); } else { await suspectClient .SetRoleWithSolution(interview.Role, pattern.SolutionSequence); await suspectClient.ShowInducer(); } }
private void LogInterview(Interview interview) { var duration = interview.Started.HasValue ? DateTime.Now - interview.Started.Value : TimeSpan.Zero; var interviewData = new { interview.Status, interview.Outcome, Duration = duration, Packet = interview.Packet.Name, InterferencePattern = interview.InterferencePattern.ToString(), InterferenceSolution = interview.InterferencePattern.SolutionSequence, SuspectBackground = interview.SuspectBackgrounds.First(), SuspectType = interview.Role.Type, SuspectFault = interview.Role.Fault, SuspectTraits = interview.Role.Traits, }; var options = new JsonSerializerOptions(); options.Converters.Add(new JsonStringEnumConverter()); var strData = JsonSerializer.Serialize(interviewData, options); Logger.LogInformation( "Interview completed at {Time}: {Data}", DateTime.Now, strData ); }
public bool TryAddUser(Interview interview, string connectionID) { if (interview.Players.Count >= Configuration.MaxPlayers) { return(false); } var player = new Player(); player.ConnectionID = connectionID; Players[connectionID] = player; interview.Players.Add(player); if (interview.InterviewerIndex == -1) { player.Position = PlayerPosition.Interviewer; interview.InterviewerIndex = interview.Players.Count - 1; } else if (interview.SuspectIndex == -1) { player.Position = PlayerPosition.Suspect; interview.SuspectIndex = interview.Players.Count - 1; } else { player.Position = PlayerPosition.Spectator; } player.InterviewID = interview.InterviewID; return(true); }
// GET: Interview/Create public ActionResult Create(int id) { var interview = new Interview(); interview.PersonId = id; return(View(interview)); }
public JsonResult _SubmitCandidateAvailabilityForm(Interview interview) { bool action = false; if (ModelState.IsValid) { using (var db = new TalentContext()) { //var InterviewExistingCheck = db.Interviews.Where(o => o.JobRequisitionID == interview.JobRequisitionID && o.JobApplicationID == interview.JobApplicationID); if (interview.InterviewID != 0) { db.Interviews.Add(interview); db.Entry(interview).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } else { db.Interviews.Add(interview); db.SaveChanges(); } var applicant = db.JobApplications.Include("JobSeeker").Where(x => x.JobApplicationID == interview.JobApplicationID).First().JobSeeker; ApplicationDbContext context = new ApplicationDbContext(); var UserManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context)); var applicantemail = UserManager.FindById(applicant.UserId).Email; SendEmailToApplicant(); action = true; } } var response = new Dictionary <string, dynamic>(); response.Add("action", (bool)action); response.Add("interviewid", (int)interview.InterviewID); return(Json(response, JsonRequestBehavior.AllowGet)); }
public ActionResult _GetCandidateAvailabilityForm(int requisitionid, int applicationid) { var interview = new Interview(); var InterviewExistingCheck = db.Interviews.Where(o => o.JobRequisitionID == requisitionid && o.JobApplicationID == applicationid); if (InterviewExistingCheck.Any()) { interview = InterviewExistingCheck.FirstOrDefault(); } else { interview = new Interview() { JobRequisitionID = requisitionid, JobApplicationID = applicationid, ProposedDate1 = DateTime.Now, ProposedDate2 = DateTime.Now }; db.Interviews.Add(interview); } interview.JobApplicationID = applicationid; interview.JobRequisitionID = requisitionid; interview.OfficePositionID = db.JobApplications.Where(o => o.JobRequisitionID == interview.JobRequisitionID).FirstOrDefault().JobApplicationID; db.SaveChanges(); ViewBag.applicationid = applicationid; ViewBag.requisitionid = requisitionid; return(PartialView(interview)); }
public async Task <IActionResult> Edit(int id, [Bind("InterviewID,DateTime,RoomNumber")] Interview interview) { if (id != interview.InterviewID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(interview); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!InterviewExists(interview.InterviewID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(interview)); }
public List <Interview> GetPositionsDetails() { List <Interview> replysList = new List <Interview>(); SqlConnection connection = P299DB.GetConnection(); string selectStatement = "SELECT InterviewID, CompanyID, ContactID, JobID, InterviewDate, Outcome, Notes " + "FROM InterviewReply " + "ORDER BY CompanyID"; SqlCommand selectCommand = new SqlCommand(selectStatement, connection); try { connection.Open(); SqlDataReader reader = selectCommand.ExecuteReader(); while (reader.Read()) { Interview reply = new Interview(); reply.InterviewDate = (DateTime)reader["InterviewDate"]; reply.Outcome = reader["Outcome"].ToString(); reply.Notes = reader["Notes"].ToString(); replysList.Add(reply); } reader.Close(); } catch (SqlException ex) { throw ex; } finally { connection.Close(); } return(replysList); }
public Interview AddInterview(Interview interview) { if (interview.Id == 0) { interview.ApplyDate = DateTime.Now; _context.Interviews.Add(interview); } else { var dbEntry = _context.Interviews.Find(interview.Id); if (dbEntry != null) { dbEntry.VacancyId = interview.VacancyId; dbEntry.ApplicantId = interview.ApplicantId; dbEntry.Status = interview.Status; dbEntry.ApplyDate = DateTime.Now; dbEntry.InterviewDate = interview.InterviewDate; dbEntry.RejectDate = DateTime.Now; dbEntry.RejectReason = interview.RejectReason; dbEntry.InterviewRoom = interview.InterviewRoom; } } _context.SaveChanges(); return(interview); }
public List <PanelMember> AssignInterview(int interviewId, List <int> employeeIds) { List <PanelMember> panel = new List <PanelMember>(); try { //check if the interview actually exists Interview interview = db.Interviews.FirstOrDefault(i => i.InterviewID == interviewId); if (interview != null) { foreach (int id in employeeIds) { //get employee details Employee emp = db.Employees.FirstOrDefault(p => p.EmployeeID == id); if (emp != null) { //create new panel members from employee and interview details PanelMember panelMember = new PanelMember(); panelMember.EmployeeID = emp.EmployeeID; panelMember.InterviewID = interview.InterviewID; db.PanelMembers.Add(panelMember); panel.Add(panelMember); db.SaveChanges(); } } } } catch (ArgumentNullException ex) { Console.WriteLine("Aw shucks, we couldn't add all the interview to all the panel members " + ex.Message); } return(panel); }
private void EnsureIsInterviewer(Interview interview) { if (Context.ConnectionId != interview.InterviewerConnectionID) { throw new Exception("Only the interviewer can issue this command for session " + SessionID); } }
public async Task <bool> ScheduleCandidateInterview(ScheduleInterview interview) { Interview candInterview = null; bool result = false; try { var query = await(from slc in _context.ShortListedCandidate where slc.CandidateId == interview.CandidateId && slc.PositionId == interview.PositionId select new { slc.ShortListedCandidateId }).FirstOrDefaultAsync(); candInterview = new Interview() { ShortlistedCandidateId = query.ShortListedCandidateId, InterviewDate = interview.InterviewDate, Location = interview.Location, InterviewType = interview.InterviewType, InterviewTime = interview.InterviewTime }; _context.Interview.Add(candInterview); await _context.SaveChangesAsync(); } catch (Exception) { } return(result); }
public static List <Interview> GetInterviews(int id) { SqlConnection conn = DB.DbReadOnlyConnect(); conn.Open(); string queryString = "SELECT * FROM CRM_CandidateInterviews WHERE candidateId = @id ORDER BY interviewDate DESC"; SqlCommand getInterviews = new SqlCommand(queryString, conn); getInterviews.Parameters.AddWithValue("id", id); SqlDataReader interviewReader = getInterviews.ExecuteReader(); List <Interview> m_Interviews = new List <Interview>(); while (interviewReader.Read()) { Interview m_Interview = new Interview(); m_Interview.Id = interviewReader.GetInt32(0); m_Interview.InterviewDate = interviewReader.GetDateTime(1); m_Interview.JobId = interviewReader.GetInt32(2); m_Interview.CandidateId = interviewReader.GetInt32(3); m_Interview.InterviewType = interviewReader.GetString(4); JobOrder m_Job = DBJobOrder.RetrieveOne(m_Interview.JobId); m_Interview.JobName = m_Job.PositionTitle; m_Interviews.Add(m_Interview); } conn.Close(); return(m_Interviews); }
/// <summary> /// Write Insert Log For Interview /// </summary> /// <param name="objInfo"></param> /// <param name="logId"></param> public void WriteInsertLogForInterview(Interview objInfo, string templateRound, string jr, ELogAction action) { try { string logId = commonDao.UniqueId; if ((objInfo != null) && (logId != null)) { commonDao.InsertMasterLog(logId, objInfo.CreatedBy, ELogTable.Interview.ToString(), action.ToString()); // Insert to Log Detail commonDao.InsertLogDetail(logId, "ID", "ID", null, objInfo.Id.ToString()); if (objInfo.InterviewDate.HasValue) { commonDao.InsertLogDetail(logId, "InterviewDate", "Interview Date", null, objInfo.InterviewDate.Value.ToString(Constants.DATETIME_FORMAT_FULL_LOG)); } if (!string.IsNullOrEmpty(objInfo.Venue)) { commonDao.InsertLogDetail(logId, "Venue", "Venue", null, objInfo.Venue); } if (!string.IsNullOrEmpty(objInfo.Pic)) { commonDao.InsertLogDetail(logId, "Pic", "Pic", null, objInfo.Pic); } if (!string.IsNullOrEmpty(objInfo.Content)) { commonDao.InsertLogDetail(logId, "Content", "Content", null, objInfo.Content); } if (objInfo.CandidateId.HasValue) { commonDao.InsertLogDetail(logId, "CandidateId", "Candidate Id", null, objInfo.CandidateId.Value.ToString()); } if (objInfo.InterviewStatusId.HasValue) { commonDao.InsertLogDetail(logId, "InterviewStatusId", "Interview Status Id", null, new InterviewStatusDao().GetById(objInfo.InterviewStatusId.Value).Name); } if (objInfo.Round.HasValue) { commonDao.InsertLogDetail(logId, "Round", "Round", null, objInfo.Round.Value.ToString()); } if (objInfo.InterviewResultId.HasValue) { commonDao.InsertLogDetail(logId, "InterviewResultId", "Interview Result Id", null, new InterviewResultDao().GetById(objInfo.InterviewResultId.Value).Name); } if (!string.IsNullOrEmpty(objInfo.Note)) { commonDao.InsertLogDetail(logId, "Note", "Note", null, objInfo.Note); } if (objInfo.OldInterView.HasValue) { commonDao.InsertLogDetail(logId, "OldInterView", "Old InterView", null, objInfo.OldInterView.HasValue ? objInfo.OldInterView.Value == false ? "No" : "Yes" : ""); } if (objInfo.IsSentMailCandidate.HasValue) { commonDao.InsertLogDetail(logId, "IsSentMailCandidate", "IsSentMailCandidate", null,objInfo.IsSentMailCandidate.HasValue?objInfo.IsSentMailCandidate.Value == false ? "No" : "Yes":""); } if (objInfo.IsSendMailInterviewer.HasValue) { commonDao.InsertLogDetail(logId, "IsSendMailInterviewer", "IsSendMailInterviewer", null, objInfo.IsSendMailInterviewer.HasValue?objInfo.IsSendMailInterviewer.Value == false ? "No" : "Yes":""); } if (!string.IsNullOrEmpty(templateRound)) { commonDao.InsertLogDetail(logId, "TemplateRound", "TemplateRound", null, new EformDao().GetEFormMasterByID(templateRound).Name); } if (!string.IsNullOrEmpty(jr)) { commonDao.InsertLogDetail(logId, "JobRequest", "Job Request", null, jr); } // Insert Key Name string key = objInfo.CandidateId.ToString() + " [" + objInfo.Candidate.FirstName + " " + objInfo.Candidate.MiddleName + " " + objInfo.Candidate.LastName + "]" + " for Interview in round " + (objInfo.Round.HasValue?objInfo.Round.Value.ToString():"") + " in " + (objInfo.InterviewDate.HasValue? objInfo.InterviewDate.Value.ToString(Constants.DATETIME_FORMAT_VIEW):""); commonDao.InsertLogDetail(logId, "ID", "Key for Insert", null, key); } } catch (Exception ex) { throw ex; } }
/// <summary> /// Write Update Log For Employee /// </summary> /// <param name="newInfo"></param> /// <param name="logId"></param> /// <returns></returns> public bool WriteUpdateLogForInterview(Interview newInfo, string jr, ELogAction action) { bool isUpdated = false; try { string logId = commonDao.UniqueId; // Get old info Interview oldInfo = new InterviewDao().GetById(newInfo.Id.ToString()); if ((oldInfo != null) && (newInfo != null) && (logId != null)) { commonDao.InsertMasterLog(logId, newInfo.UpdatedBy, ELogTable.Interview.ToString(), action.ToString()); if (oldInfo.InterviewDate != newInfo.InterviewDate) { commonDao.InsertLogDetail(logId, "InterviewDate", "Interview Date", newInfo.InterviewDate.HasValue ? newInfo.InterviewDate.Value.ToString(Constants.DATETIME_FORMAT_FULL_LOG) : "", oldInfo.InterviewDate.HasValue ? oldInfo.InterviewDate.Value.ToString(Constants.DATETIME_FORMAT_FULL_LOG) : ""); isUpdated = true; } if (oldInfo.Venue != newInfo.Venue) { commonDao.InsertLogDetail(logId, "Venue", "Venue", oldInfo.Venue, newInfo.Venue); isUpdated = true; } if (oldInfo.Pic != newInfo.Pic) { commonDao.InsertLogDetail(logId, "Pic", "Pic", oldInfo.Pic, newInfo.Pic); isUpdated = true; } if (oldInfo.Content != newInfo.Content) { commonDao.InsertLogDetail(logId, "Content", "Content", oldInfo.Content, newInfo.Content); isUpdated = true; } if (oldInfo.CandidateId != newInfo.CandidateId) { isUpdated = true; commonDao.InsertLogDetail(logId, "CandidateId", "Candidate Id", oldInfo.CandidateId.HasValue?oldInfo.CandidateId.Value.ToString():"", newInfo.CandidateId.HasValue?newInfo.CandidateId.Value.ToString():""); } if (oldInfo.InterviewStatusId != newInfo.InterviewStatusId) { isUpdated = true; commonDao.InsertLogDetail(logId, "InterviewStatusId", "Interview Status Id", oldInfo.InterviewStatusId.HasValue?oldInfo.InterviewStatus.Name:"", newInfo.InterviewStatusId.HasValue?new InterviewStatusDao().GetById(newInfo.InterviewStatusId.Value).Name:""); } if (oldInfo.Round != newInfo.Round) { isUpdated = true; commonDao.InsertLogDetail(logId, "Round", "Round", oldInfo.Round.HasValue?oldInfo.Round.Value.ToString():"", newInfo.Round.HasValue?newInfo.Round.Value.ToString():""); } if (oldInfo.InterviewResultId != newInfo.InterviewResultId) { isUpdated = true; commonDao.InsertLogDetail(logId, "InterviewResultId", "Interview Result Id",oldInfo.InterviewResultId.HasValue?oldInfo.InterviewResult.Name:"", newInfo.InterviewResultId.HasValue?new InterviewResultDao().GetById(newInfo.InterviewResultId.Value).Name:""); } if (oldInfo.Note != newInfo.Note) { isUpdated = true; commonDao.InsertLogDetail(logId, "Note", "Note", newInfo.Note, oldInfo.Note); } if (oldInfo.OldInterView != newInfo.OldInterView) { isUpdated = true; commonDao.InsertLogDetail(logId, "OldInterView", "Old InterView", oldInfo.OldInterView.HasValue ? oldInfo.OldInterView.Value == false ? "No" : "Yes" : "", newInfo.OldInterView.HasValue ? newInfo.OldInterView.Value == false ? "No" : "Yes" : ""); } if (oldInfo.IsSendMailInterviewer != newInfo.IsSendMailInterviewer) { isUpdated = true; commonDao.InsertLogDetail(logId, "IsSendMailInterviewer", "IsSendMailInterviewer", oldInfo.IsSendMailInterviewer.Value == false ? "No" : "Yes",oldInfo.IsSendMailInterviewer.Value == false ? "No" : "Yes"); } if (oldInfo.IsSentMailCandidate != newInfo.IsSentMailCandidate) { isUpdated = true; commonDao.InsertLogDetail(logId, "IsSentMailCandidate", "IsSentMailCandidate", oldInfo.IsSendMailInterviewer.Value == false ? "No" : "Yes", newInfo.IsSentMailCandidate.Value == false ? "No" : "Yes"); } if (oldInfo.InterviewFormId != newInfo.InterviewFormId) { isUpdated = true; commonDao.InsertLogDetail(logId, "TemplateRound", "TemplateRound", new EformDao().GetEFormMasterByID(oldInfo.InterviewFormId).Name, new EformDao().GetEFormMasterByID(newInfo.InterviewFormId).Name); } if (!string.IsNullOrEmpty(jr)) { Candidate objCan = new CandidateDao().GetById(oldInfo.CandidateId.Value.ToString()); if (objCan.JRId.Value.ToString() != jr) { commonDao.InsertLogDetail(logId, "JobRequest", "Job Request", objCan.JRId.Value.ToString(), jr); isUpdated = true; } } // Insert Key Name if (isUpdated) { string key = oldInfo.CandidateId.ToString() + " [" + oldInfo.Candidate.FirstName + " " + oldInfo.Candidate.MiddleName + " " + oldInfo.Candidate.LastName + "]" + " for Interview in round " + oldInfo.Round.Value.ToString() + " in " + oldInfo.InterviewDate.Value.ToString(Constants.DATETIME_FORMAT_VIEW); commonDao.InsertLogDetail(logId, "ID", "Key for Update", key, null); } else { commonDao.DeleteMasterLog(logId); } } } catch (Exception ex) { throw ex; } return isUpdated; }
/// <summary> /// This function add update interview /// </summary> /// <param name="objInterview"></param> /// <returns></returns> public int AddUpdateInterview(Interview objInterview) { var context = new dbDataContext(); var interview = context.tbl_Interviews.FirstOrDefault(t => t.InterviewId == objInterview.InterviewId) ?? new tbl_Interview(); interview.JobId = objInterview.JobId; interview.InterviewType = objInterview.InterviewType; interview.LastUpdatedBy = objInterview.LastUpdatedBy; interview.ConfirmationTemplateId = objInterview.ConfirmationTemplateId; interview.RequestTemplateId = objInterview.RequestTemplateId; interview.LastUpdatedDate = DateTime.Now; if (interview.InterviewId <= 0) { interview.CreatedBy = objInterview.LastUpdatedBy; interview.CreatedDate = DateTime.Now; context.tbl_Interviews.InsertOnSubmit(interview); } context.SubmitChanges(); if (interview.InterviewId > 0) { // add a history record for interview update new Histories().AddHistory(new History { RefId = interview.InterviewId, RefType = "Interview", ClientUserId = objInterview.LastUpdatedBy, TypeId = objInterview.InterviewId > 0 ? 21 : 20, SubRefType = objInterview.LastUpdatedBy > 0 ? "User" : "", SubRefId = objInterview.LastUpdatedBy }); } return interview.InterviewId; }
/// <summary> /// Update result /// </summary> /// <param name="objUI">Interview</param> /// <returns>Message</returns> public Message UpdateResult(Interview objUI) { Message msg = null; try { if (objUI != null) { Interview inter = GetById(objUI.Id.ToString()); new InterviewLogDao().WriteUpdateLogForResult(inter, objUI.InterviewResultId.Value,objUI.Note,objUI.UpdatedBy,ELogAction.Update); inter.InterviewResultId = objUI.InterviewResultId; inter.Note = objUI.Note; inter.UpdatedBy = objUI.UpdatedBy; inter.UpdatedDate = DateTime.Now; dbContext.SubmitChanges(); msg = new Message(MessageConstants.I0001, MessageType.Info, "The result of "+inter.Candidate.FirstName + " " + inter.Candidate.MiddleName + " " +inter.Candidate.LastName +" for interview at Round " + inter.Round.Value.ToString(), "updated"); } } catch (Exception) { // Show system error msg = new Message(MessageConstants.E0007, MessageType.Error); } return msg; }
/// <summary> /// Write Update Log For Interview /// </summary> /// <param name="newInfo"></param> /// <param name="logId"></param> /// <returns></returns> public void WriteUpdateLogForResult(Interview obj,int result,string note, string userUpdate,ELogAction action) { try { string logId = commonDao.UniqueId; // Get old info commonDao.InsertMasterLog(logId, userUpdate, ELogTable.Interview.ToString(), action.ToString()); commonDao.InsertLogDetail(logId, "Interview Result", "Interview Result", obj.InterviewResultId.HasValue ? new InterviewResultDao().GetById((int)obj.InterviewResultId).Name : "", new InterviewResultDao().GetById(result).Name); if (!string.IsNullOrEmpty(note)) { commonDao.InsertLogDetail(logId, "Interview Note", "Interview Note", obj.Note, note); } string key = obj.CandidateId.ToString() + " [" + obj.Candidate.FirstName + " " + obj.Candidate.MiddleName + " " + obj.Candidate.LastName + "]" + " for Interview in round " + obj.Round.Value.ToString() + " in " + obj.InterviewDate.Value.ToString(Constants.DATETIME_FORMAT_VIEW); commonDao.InsertLogDetail(logId, "ID", "Key for Update", key, null); } catch (Exception ex) { throw ex; } }
/// <summary> /// Insert interview /// </summary> /// <param name="objUI">Interview</param> /// <returns>Messsage</returns> public Message Insert(Interview objUI) { Message msg = null; try { if (objUI != null) { objUI.DeleteFlag = false; objUI.IsSendMailInterviewer = false; objUI.IsSentMailCandidate = false; dbContext.Interviews.InsertOnSubmit(objUI); dbContext.SubmitChanges(); Candidate candi = new CandidateDao().GetById(objUI.CandidateId.Value.ToString()); msg = new Message(MessageConstants.I0001, MessageType.Info, "Candidate '" + candi.FirstName + " " + candi.MiddleName + " " + candi.LastName + "'", "added to interview history"); new InterviewLogDao().WriteLogForInterview(null, objUI, ELogAction.Insert); } } catch (Exception) { // Show system error msg = new Message(MessageConstants.E0007, MessageType.Error); } return msg; }
/// <summary> /// Write Log For Employee /// </summary> /// <param name="oldInfo"></param> /// <param name="newInfo"></param> /// <param name="action"></param> public void WriteLogForInterview(Interview oldInfo, Interview newInfo, ELogAction action) { try { if (newInfo == null) { return; } MasterLog objMasterLog = new MasterLog(); string logId = commonDao.UniqueId; switch (action) { //case ELogAction.Insert: // // Insert to Master Log // commonDao.InsertMasterLog(logId, newInfo.CreatedBy, ELogTable.Interview.ToString(), action.ToString()); // // Write Insert Log // WriteInsertLogForInterview(newInfo, logId); // break; //case ELogAction.Update: // // Insert to Master Log // commonDao.InsertMasterLog(logId, newInfo.UpdatedBy, ELogTable.Interview.ToString(), action.ToString()); // // Write Update Log // bool isUpdated = WriteUpdateLogForInterview(newInfo, logId); // if (!isUpdated) // { // commonDao.DeleteMasterLog(logId); // } // break; case ELogAction.Delete: // Insert to Master Log commonDao.InsertMasterLog(logId, newInfo.UpdatedBy, ELogTable.Candidate.ToString(), action.ToString()); // Write Delete Log string key = newInfo.CandidateId.ToString() + " [" + newInfo.Candidate.FirstName + " " + newInfo.Candidate.MiddleName + " " + newInfo.Candidate.LastName + "]" + " for Interview in round " + (newInfo.Round.HasValue?newInfo.Round.Value.ToString():"") + " in " + (newInfo.InterviewDate.HasValue?newInfo.InterviewDate.Value.ToString(Constants.DATETIME_FORMAT_VIEW):""); commonDao.InsertLogDetail(logId, "ID", "Key for Delete", key, null); break; } } catch (Exception ex) { throw ex; } }
public List<Interview> GetListInterviewLinq(string candidateName, int? status, int? result, string interviewedBy, DateTime? fromDate, DateTime? toDate, string sortColumn, string sortOrder, int skip, int take) { Interview inter = new Interview(); string sortSQL = string.Empty; switch (sortColumn) { case "ID": sortSQL += "Candidate.ID " + sortOrder; break; case "DisplayName": sortSQL += "Candidate.FirstName " + sortOrder + "," + "Candidate.MiddleName " + sortOrder + "," + "Candidate.LastName " + sortOrder; break; case "Status": sortSQL += "InterviewStatus.Name " + sortOrder; break; case "ResultName": sortSQL += "InterviewResult.Name " + sortOrder; break; case "SubDept": sortSQL += "Candidate.JobRequestItem.JobRequest.Department.DepartmentName " + sortOrder; break; case "Position": sortSQL += "Candidate.JobTitleLevel.DisplayName " + sortOrder; break; case "InterviewDate": sortSQL += "InterviewDate " + sortOrder; break; case "Venue": sortSQL += "Venue " + sortOrder; break; case "Pic": sortSQL += "Pic " + sortOrder; break; case "IsSendMailInterviewer": sortSQL += "IsSendMailInterviewer " + sortOrder; break; case "IsSentMailCandidate": sortSQL += "IsSentMailCandidate " + sortOrder; break; } var sql = GetQueryListInterview(candidateName, status, result, interviewedBy, fromDate, toDate).OrderBy(sortSQL); if (skip == 0 && take == 0) { return sql.ToList(); } return sql.Skip(skip).Take(take).ToList(); }
/// <summary> /// Update interview /// </summary> /// <param name="obj">Interview</param> /// <param name="jr">string</param> /// <returns>Message</returns> public Message UpdateInterview(Interview obj,string jr) { Message msg = null; try { if (obj != null) { Interview inter = GetByCandidateRound((int)obj.CandidateId, (int) obj.Round); GetEForm(inter.InterviewFormId, inter.CandidateId.Value.ToString(), (int)Constants.PersonType.Candidate, inter.Round.Value,obj.InterviewFormId); //Write Log obj.Id = inter.Id; obj.OldInterView = inter.OldInterView; obj.IsSendMailInterviewer = inter.IsSendMailInterviewer; obj.IsSentMailCandidate = inter.IsSentMailCandidate; obj.InterviewStatusId = inter.InterviewStatusId; new InterviewLogDao().WriteUpdateLogForInterview(obj, jr, ELogAction.Update); //inter.InterviewResultId = objUI.InterviewResultId; inter.InterviewFormId = obj.InterviewFormId; inter.InterviewDate = obj.InterviewDate; inter.Pic = obj.Pic; inter.Venue = obj.Venue; inter.Note = obj.Note; inter.CClist = obj.CClist; inter.Content = obj.Content; inter.UpdatedBy = obj.UpdatedBy; inter.UpdatedDate = DateTime.Now; dbContext.SubmitChanges(); msg = new Message(MessageConstants.I0001, MessageType.Info, "The round of interview", "updated"); } } catch (Exception) { // Show system error msg = new Message(MessageConstants.E0007, MessageType.Error); } return msg; }