Esempio n. 1
0
        public async Task <ICollection <Event> > RegisterTechInterviewUpdate(TechInterview newInterview, int userId)
        {
            return(await Task.Run
                   (
                       async() =>
            {
                var oldInterview = await Task.Run(() => techInterviewRepository.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
                    });
                }

                if (oldInterview.TechSkill != newInterview.TechSkill)
                {
                    eventsList.Add(new Event
                    {
                        Date = DateTime.UtcNow,

                        Event1 = EventIds.Interview,

                        EventType = EventTypes.Edit,

                        GeneralInterview = oldInterview.Id,

                        NewValue = newInterview.TechSkill.ToString(),

                        OldValue = oldInterview.TechSkill.ToString(),

                        Property = "skill",

                        User = userId
                    });
                }

                var result = await Task.Run(() => eventRepository.AddRange(eventsList));

                return result.ToList();
            }
                   ));
        }
Esempio n. 2
0
        public CalendarEvent DefaultEvent(int interviewId, string type, int?candidateId)
        {
            CalendarEvent calendarEvent;

            if (type == "tech")
            {
                var interview = techInterviewRepository.Read(interviewId);

                calendarEvent = new CalendarEvent
                {
                    HR = interview.User,

                    CandidateEmail = interview.Candidate1.Contact.Email,

                    Summary = "JobInterview",

                    Description = "Job Technical Interview for Exadel.",

                    TechEmail = interview.User1.Email,

                    StartTime = interview.Date,

                    EndTime = interview.EndDate
                };
            }
            else if (type == "general")
            {
                var interview = generalInterviewRepository.Read(interviewId);

                calendarEvent = new CalendarEvent
                {
                    HR = interview.User,

                    CandidateEmail = interview.Candidate1.Contact.Email,

                    Summary = "JobInterview",

                    Description = "Job General Interview for Exadel.",

                    TechEmail = interview.User1.Email,

                    StartTime = interview.Date,

                    EndTime = interview.EndDate
                };
            }
            else
            {
                candidateId = candidateId ?? throw new Exception("Not found candidateId");

                var candidate = candidateRepository.Read(candidateId.Value);

                calendarEvent = new CalendarEvent
                {
                    HR = candidate.User1,

                    CandidateEmail = candidate.Contact.Email,

                    Summary = "JobInterview",

                    Description = "Job Customer Interview for Exadel.",

                    StartTime = candidate.CustomerInterviewDate,

                    EndTime = candidate.CustomerInterviewEndDate
                };
            }

            return(calendarEvent);
        }