コード例 #1
0
        public async Task <GeneralInterview> UpdateGeneralInterview(GeneralInterview generalInterview)
        {
            CompareInterviewDate(generalInterview);

            var result = await Task.Run(() => generalRepository.Update(generalInterview));

            return(result);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: EventService.cs プロジェクト: Pointy-hair/KnowBase
        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);
        }
コード例 #4
0
        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;
            }));
        }
コード例 #5
0
        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;
            }));
        }
コード例 #6
0
        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;
                }
            }));
        }
コード例 #7
0
        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);
        }
コード例 #8
0
ファイル: EventService.cs プロジェクト: Pointy-hair/KnowBase
        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();
            }
                   ));
        }
コード例 #9
0
ファイル: EventService.cs プロジェクト: Pointy-hair/KnowBase
        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();
            }
                   ));
        }