public async Task <GeneralInterview> UpdateGeneralInterview(GeneralInterview generalInterview) { CompareInterviewDate(generalInterview); var result = await Task.Run(() => generalRepository.Update(generalInterview)); return(result); }
public async Task <GeneralInterview> SetGeneralInterviewFeedback(GeneralInterview generalInterview) { generalInterview.Status = InterviewStatuses.Closed; generalInterview.EndDate = DateTime.UtcNow; var result = await Task.Run(() => generalRepository.Update(generalInterview)); return(result); }
public async Task <Event> RegisterGeneralInterview(GeneralInterview interview, int userId) { var newEvent = new Event { Date = DateTime.UtcNow, Event1 = EventIds.Interview, EventType = EventTypes.Add, GeneralInterview1 = interview, User = userId }; var result = await Task.Run(() => eventRepository.Create(newEvent)); return(result); }
public Task AddCustomerInterview(int candidateId, DateTime date, DateTime endDate) { IInterview interview = new GeneralInterview { Candidate = candidateId, Date = date, EndDate = endDate, Status = InterviewStatuses.Active }; CompareInterviewDate(interview); return(Task.Run(() => { Candidate candidate = candidateRepository.Read(candidateId); candidate.CustomerInterviewDate = date; candidate.CustomerInterviewEndDate = endDate; candidate.CustomerInterviewStatus = InterviewStatuses.Active; })); }
public async Task <GeneralInterview> AddGeneralInterview(GeneralInterview generalInterview) { CompareInterviewDate(generalInterview); return(await Task.Run(async() => { generalInterview.Status = InterviewStatuses.Active; generalRepository.Create(generalInterview); var candidate = await Task.Run(() => candidateRepository.Read(generalInterview.Candidate)) .ConfigureAwait(false); candidate.Status = await Task.Run(() => statusRepository.Find(x => x.Name == "Interview").First().Id) .ConfigureAwait(false); candidate.GeneralInterviewStatus = InterviewStatuses.Active; return generalInterview; })); }
public Task UpdateCustomerInterview(int candidateId, DateTime?date, DateTime?endDate) { IInterview interview = new GeneralInterview { Candidate = candidateId, Date = date, EndDate = endDate, Status = InterviewStatuses.Active }; CompareInterviewDate(interview); return(Task.Run(() => { Candidate candidate = candidateRepository.Read(candidateId); if (date != null) { candidate.CustomerInterviewDate = date; } if (endDate != null) { candidate.CustomerInterviewEndDate = endDate; } })); }
public async Task AddGeneralInterviewTest() { GeneralInterview generalInterview = new GeneralInterview() { Id = 5, Candidate = 2, City = 3, Date = new DateTime(2017, 7, 21), Status = false, EngLevel = 4, Commentary = "Commentary" }; Candidate candidate = new Candidate() { Id = 7, FirstNameEng = "Aleksey", LastNameEng = "Mironov", FirstNameRus = "Алексей", LastNameRus = "Миронов", Status = 3, HRM = 1 }; CandidateStatus candidateStatus = new CandidateStatus() { Name = "On hold" }; mockCandidateRepository.Setup(x => x.Read(It.IsAny <int>())).Returns(candidate); IQueryable <CandidateStatus> candidateStatusList = new List <CandidateStatus>() { candidateStatus }.AsQueryable(); mockStatusRepository.Setup(x => x.Find(It.IsAny <Expression <Func <CandidateStatus, bool> > >())).Returns(candidateStatusList); var candidateRepository = mockCandidateRepository.Object; var unitOfWork = mockUnitOfWork.Object; var techRepository = mockTechRepository.Object; var generalRepository = mockGeneralRepository.Object; var statusRepository = mockStatusRepository.Object; var interviewService = new InterviewService(unitOfWork, techRepository, candidateRepository, generalRepository, statusRepository); await interviewService.AddGeneralInterview(generalInterview); Assert.IsTrue(candidate.GeneralInterviewStatus.Value); }
public async Task <ICollection <Event> > RegisterGeneralInterviewFeedback(GeneralInterview newInterview, int userId) { return(await Task.Run ( async() => { var interviewId = newInterview.Id; var eventsList = new List <Event>(); if (newInterview.EngLevel != null) { eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Feedback, EventType = EventTypes.Add, GeneralInterview = interviewId, NewValue = newInterview.EngLevel.ToString(), Property = "english level", User = userId }); } eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Feedback, EventType = EventTypes.Add, GeneralInterview = interviewId, NewValue = newInterview.Feedback, Property = "feedback", User = userId }); eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Feedback, EventType = EventTypes.Add, GeneralInterview = interviewId, NewValue = newInterview.Interests, Property = "interests", User = userId }); eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Feedback, EventType = EventTypes.Add, GeneralInterview = interviewId, NewValue = newInterview.JobChangeReason, Property = "job change reason", User = userId }); eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Feedback, EventType = EventTypes.Add, GeneralInterview = interviewId, NewValue = newInterview.ReadyForBusinessTrips.HasValue ? newInterview.ReadyForBusinessTrips.Value.ToString() : null, Property = "ready for business trips", User = userId }); eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Feedback, EventType = EventTypes.Add, GeneralInterview = interviewId, NewValue = newInterview.WhenCanStart.HasValue ? newInterview.WhenCanStart.Value.ToString() : null, Property = "when can start", User = userId }); var result = await Task.Run(() => eventRepository.AddRange(eventsList)); return result.ToList(); } )); }
public async Task <ICollection <Event> > RegisterGeneralInterviewUpdate(GeneralInterview newInterview, int userId) { return(await Task.Run ( async() => { var oldInterview = await Task.Run(() => generalInterviewRepository.Read(newInterview.Id)); var eventsList = new List <Event>(); if (oldInterview.City != newInterview.City) { eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Interview, EventType = EventTypes.Edit, GeneralInterview = oldInterview.Id, NewValue = newInterview.City.HasValue ? newInterview.City.Value.ToString() : null, OldValue = oldInterview.City.HasValue ? oldInterview.City.Value.ToString() : null, Property = "city", User = userId }); } if (string.Compare(oldInterview.Commentary, newInterview.Commentary, StringComparison.OrdinalIgnoreCase) != 0) { eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Interview, EventType = EventTypes.Edit, GeneralInterview = oldInterview.Id, NewValue = newInterview.Commentary, OldValue = oldInterview.Commentary, Property = "commentary", User = userId }); } if (oldInterview.Date != newInterview.Date) { eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Interview, EventType = EventTypes.Edit, GeneralInterview = oldInterview.Id, NewValue = newInterview.Date.HasValue ? newInterview.Date.Value.ToString() : null, OldValue = oldInterview.Date.HasValue ? oldInterview.Date.Value.ToString() : null, Property = "date", User = userId }); } if (oldInterview.Interviewer != newInterview.Interviewer) { eventsList.Add(new Event { Date = DateTime.UtcNow, Event1 = EventIds.Interview, EventType = EventTypes.Edit, GeneralInterview = oldInterview.Id, NewValue = newInterview.Interviewer.HasValue ? newInterview.Interviewer.Value.ToString() : null, OldValue = oldInterview.Interviewer.HasValue ? oldInterview.Interviewer.Value.ToString() : null, Property = "interviewer", User = userId }); } var result = await Task.Run(() => eventRepository.AddRange(eventsList)); return result.ToList(); } )); }