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.");
        }
Example #3
0
        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);
        }
Example #4
0
        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));
        }
Example #7
0
        /// <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"
            };
        }
Example #8
0
        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
                );
        }
Example #9
0
        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());
        }
Example #10
0
        public async Task <ActionResult <Interview> > PostInterview(Interview interview)
        {
            _context.Interviews.Add(interview);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetInterview", new { id = interview.InterviewId }, interview));
        }
Example #11
0
        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"));
        }
Example #13
0
        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));
        }
Example #14
0
 private void EnsureIsSuspect(Interview interview)
 {
     if (Context.ConnectionId != interview.SuspectConnectionID)
     {
         throw new Exception("Only the suspect can issue this command for session " + SessionID);
     }
 }
Example #15
0
        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!" }));
            }
        }
Example #17
0
        private async Task SetPacket(Interview interview, int index)
        {
            Service.SetPacketAndInducer(interview, index);

            await Clients.Group(SessionID)
            .SetPacket(interview.Packet.Name, interview.Packet.Prompt);
        }
Example #18
0
        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);
        }
Example #21
0
        // GET: Interview/Create
        public ActionResult Create(int id)
        {
            var interview = new Interview();

            interview.PersonId = id;
            return(View(interview));
        }
Example #22
0
        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));
        }
Example #23
0
        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));
        }
Example #24
0
        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);
        }
Example #28
0
 private void EnsureIsInterviewer(Interview interview)
 {
     if (Context.ConnectionId != interview.InterviewerConnectionID)
     {
         throw new Exception("Only the interviewer can issue this command for session " + SessionID);
     }
 }
Example #29
0
        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);
        }
Example #30
0
        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);
        }
Example #31
0
 /// <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;
     }
 }
Example #32
0
        /// <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;
        }
Example #33
0
        /// <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;
        }
Example #34
0
        /// <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;
        }
Example #35
0
 /// <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;
     }
 }
Example #36
0
 /// <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;
 }
Example #37
0
        /// <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;
            }
        }
Example #38
0
        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();
        }
Example #39
0
        /// <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;
        }