public HttpResponseMessage Post(InterviewFeedbacks feedback)
 {
     try
     {
         if (feedback != null)
         {
             string user = iRecruit.Security.Extensions.FetchUserFromRequestHeader(this.ActionContext);
             if (feedback.InterviewFeedbacksID == 0)
             {
                 feedback.CreatedBy = user;
             }
             else
             {
                 feedback.ModifiedBy = user;
             }
             int candId = this._repo.SaveInterviewFeedback(feedback);
             if (candId > 0)
             {
                 string toNotification = this._repo.ExecuteInterviewWorkflow(candId);
                 if (!string.IsNullOrWhiteSpace(toNotification))
                 {
                     EmailMessage message = new EmailMessage()
                     {
                         To = toNotification, Subject = "Interview Feedback"
                     };
                     string messageBody = File.ReadAllText(HttpContext.Current.Server.MapPath("~/Views/Templates/InterviewFeedback.html"));
                     messageBody = messageBody.Replace("##CandidateID##", candId.ToString());
                     Candidates cand = _repo.GetCandidate(candId);
                     if (cand != null)
                     {
                         messageBody  = messageBody.Replace("##CandidateName##", cand.FirstName + " " + cand.LastName);
                         message.Body = messageBody;
                         new EmailHelper().Send(message, null, null);
                     }
                 }
             }
             HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, true);
             return(response);
         }
         else
         {
             return(Request.CreateErrorResponse(HttpStatusCode.NoContent, new Exception("No data found to save")));
         }
     }
     catch (Exception ex)
     {
         _tracer.Error(Request, this.ControllerContext.ControllerDescriptor.ControllerType.FullName, ex.StackTrace);
         return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
         {
             Content = new StringContent(ex.Message)
         });
     }
 }
예제 #2
0
        public int SaveInterviewFeedback(InterviewFeedbacks feedback)
        {
            try
            {
                // add/update feedback
                var count = this.InterviewFeedbacks.Count(a => a.InterviewFeedbacksID == feedback.InterviewFeedbacksID);
                if (count == 0)
                {
                    feedback.CreatedDate = DateTime.UtcNow;
                    InterviewFeedbacks.Add(feedback);
                }
                else
                {
                    InterviewFeedbacks u = this.InterviewFeedbacks.Where(s => s.InterviewFeedbacksID == feedback.InterviewFeedbacksID).FirstOrDefault <InterviewFeedbacks>();
                    // change contact in disconnected mode (out of DBContext scope)
                    if (u != null)
                    {
                        //u.IndentDate = indent.IndentDate.HasValue ? indent.IndentDate.Value : (DateTime?) null;
                        u.InterviewerName    = feedback.InterviewerName;
                        u.PositionFor        = feedback.PositionFor;
                        u.ReleventExperience = feedback.ReleventExperience;
                        u.ReleventExperienceDiscountReason = feedback.ReleventExperienceDiscountReason;
                        u.TechKnowledgeAreas         = feedback.TechKnowledgeAreas;
                        u.TechKnowledgeAreasLevel    = feedback.TechKnowledgeAreasLevel;
                        u.TechKnowledgeAreasComments = feedback.TechKnowledgeAreasComments;
                        u.AnalysisAreas                = feedback.AnalysisAreas;
                        u.AnalysisAreasLevel           = feedback.AnalysisAreasLevel;
                        u.AnalysisAreasComments        = feedback.AnalysisAreasComments;
                        u.DesignAreas                  = feedback.DesignAreas;
                        u.DesignAreasLevel             = feedback.DesignAreasLevel;
                        u.DesignAreasComments          = feedback.DesignAreasComments;
                        u.CodingAreas                  = feedback.CodingAreas;
                        u.CodingAreasLevel             = feedback.CodingAreasLevel;
                        u.CodingAreasComments          = feedback.CodingAreasComments;
                        u.DatabaseAreas                = feedback.DatabaseAreas;
                        u.DatabaseAreasLevel           = feedback.DatabaseAreasLevel;
                        u.DatabaseAreasComments        = feedback.DatabaseAreasComments;
                        u.TestingAreas                 = feedback.TestingAreas;
                        u.TestingAreasLevel            = feedback.TestingAreasLevel;
                        u.TestingAreasComments         = feedback.TestingAreasComments;
                        u.ResultOrientationLevel       = feedback.ResultOrientationLevel;
                        u.ResultOrientationComments    = feedback.ResultOrientationComments;
                        u.CommunicationSkillsLevel     = feedback.CommunicationSkillsLevel;
                        u.CommunicationSkillsComments  = feedback.CommunicationSkillsComments;
                        u.TeamWorkingLevel             = feedback.TeamWorkingLevel;
                        u.TeamWorkingComments          = feedback.TeamWorkingComments;
                        u.LeadershipCapabilityLevel    = feedback.LeadershipCapabilityLevel;
                        u.LeadershipCapabilityComments = feedback.LeadershipCapabilityComments;
                        u.AttitudeLevel                = feedback.AttitudeLevel;
                        u.AttitudeComments             = feedback.AttitudeComments;
                        u.OverallRatingLevel           = feedback.OverallRatingLevel;
                        u.OverallRatingComments        = feedback.OverallRatingComments;
                        u.SelectionReason              = feedback.SelectionReason;
                        u.PositivesRemarks             = feedback.PositivesRemarks;
                        u.ConcernsGaps                 = feedback.ConcernsGaps;
                        u.PositionRecomended           = feedback.PositionRecomended;
                        u.PositionSuggested            = feedback.PositionSuggested;
                        u.AlternaticeCompetancy        = feedback.AlternaticeCompetancy;
                        u.TrainingsNeededTechnical     = feedback.TrainingsNeededTechnical;
                        u.TrainingNeededBehavioral     = feedback.TrainingNeededBehavioral;
                        u.Status       = feedback.Status;
                        u.ModifiedBy   = feedback.ModifiedBy;
                        u.ModifiedDate = DateTime.UtcNow;
                    }
                    this.Entry(u).State = EntityState.Modified;
                }

                this.SaveChanges();

                return(feedback.CandidateID);
            }
            catch
            {
                throw;
            }
        }
예제 #3
0
 public int SaveInterviewFeedback(InterviewFeedbacks feedback)
 {
     return(this.DataContext.SaveInterviewFeedback(feedback));
 }