Esempio n. 1
0
        /// <summary>
        /// Method to assign scrum answers for a specific date to a particular employee
        /// </summary>
        /// <param name="scrum"></param>
        /// <param name="scrumDate"></param>
        /// <param name="user"></param>
        /// <returns>object with scrum answers for an employee</returns>
        private async Task <EmployeeScrumDetails> AssignAnswersAsync(Scrum scrum, DateTime scrumDate, User user)
        {
            _logger.Debug("Assign Answers Async: " + scrumDate);
            EmployeeScrumDetails employeeScrumDetail = new EmployeeScrumDetails();
            //Fetch all the scrum answers for a particular employee
            List <ScrumAnswer> scrumAnswers = (await _scrumAnswerDataRepository.FetchAsync(x => x.EmployeeId == user.Id && DbFunctions.TruncateTime(x.AnswerDate) == DbFunctions.TruncateTime(scrumDate))).ToList();

            _logger.Debug("scrum Answers: " + JsonConvert.SerializeObject(scrumAnswers));
            _logger.Debug("scrum:" + JsonConvert.SerializeObject(scrum));
            //Find scrum answers for a particular employee of a particular project on a specific date
            List <ScrumAnswer> todayScrumAnswers = new List <ScrumAnswer>();

            if (scrum != null)
            {
                todayScrumAnswers = scrumAnswers.FindAll(x => x.ScrumId == scrum.Id).ToList();
                foreach (var todayScrumAnswer in todayScrumAnswers)
                {
                    if (todayScrumAnswer.Question.Type == BotQuestionType.Scrum && todayScrumAnswer.Question.OrderNumber == QuestionOrder.Yesterday)
                    {
                        employeeScrumDetail.Answer1 = SplitScrumAnswer(todayScrumAnswer.Answer);
                    }
                    if (todayScrumAnswer.Question.Type == BotQuestionType.Scrum && todayScrumAnswer.Question.OrderNumber == QuestionOrder.Today)
                    {
                        employeeScrumDetail.Answer2 = SplitScrumAnswer(todayScrumAnswer.Answer);
                    }
                    if (todayScrumAnswer.Question.Type == BotQuestionType.Scrum && todayScrumAnswer.Question.OrderNumber == QuestionOrder.RoadBlock)
                    {
                        employeeScrumDetail.Answer3 = SplitScrumAnswer(todayScrumAnswer.Answer);
                    }
                }
            }
            _logger.Debug("today Scrum Answers:" + todayScrumAnswers.Count());
            _logger.Debug("User First Name:" + JsonConvert.SerializeObject(user));
            employeeScrumDetail.EmployeeName = string.Format("{0} {1}", user.FirstName, user.LastName);
            //Assigning answers to specific scrum questions
            if (!todayScrumAnswers.Any())
            {
                employeeScrumDetail.Status = string.Format(_stringConstant.PersonNotAvailable, scrumDate.ToString(_stringConstant.FormatForDate));
            }
            return(employeeScrumDetail);
        }
Esempio n. 2
0
        /// <summary>
        /// Method to return list of employees in the project with their scrum answers based on role of logged in user
        /// </summary>
        /// <param name="project"></param>
        /// <param name="scrum"></param>
        /// <param name="loginUser"></param>
        /// <param name="scrumDate"></param>
        /// <returns>Object with list of employees in project with answers to scrum questions</returns>
        private async Task <IList <EmployeeScrumDetails> > GetEmployeeScrumDetailsAsync(ProjectAc project, Scrum scrum, User loginUser, DateTime scrumDate)
        {
            List <EmployeeScrumDetails> employeeScrumDetails = new List <EmployeeScrumDetails>();

            //Assigning answers of scrum to employees in the project based on their role
            //If logged user is an employee it will return only his scrum answers
            if (!(project.TeamLeaderId == loginUser.Id))
            {
                employeeScrumDetails.Add((await AssignAnswersAsync(scrum, scrumDate, loginUser)));
            }
            else
            {
                foreach (var user in project.Users)
                {
                    EmployeeScrumDetails employeeScrumDetail = await AssignAnswersAsync(scrum, scrumDate, user);

                    employeeScrumDetails.Add(employeeScrumDetail);
                }
            }
            return(employeeScrumDetails);
        }