public async Task <Result <EmployeeReview> > GetById(Request <long> id)
        {
            try
            {
                var searchData = _repo.GetById(id.Model);

                if (searchData == null)
                {
                    return(new Result <EmployeeReview>("Record not found"));
                }

                var result = Mapper.Map <EmployeeReview>(searchData);

                var searchEmployee   = new UserInfoDataRepository().GetById(result.EmployeeId);
                var searchSupervisor = new UserInfoDataRepository().GetById(result.SupervisorId);

                result.EmployeeName   = searchEmployee.LastName + ", " + searchEmployee.FirstName;
                result.SupervisorName = searchSupervisor.LastName + ", " + searchSupervisor.FirstName;

                var searchAnswerItem = new AnswerItemDataRepository().Search(new SearchRequest <AnswerItemData>()
                {
                    Filter = f => f.EmployeeReviewId == searchData.Id
                });

                List <AnswerItem> data = new List <AnswerItem>();

                var searchRatingList = new RatingDataRepository().Search(new SearchRequest <RatingData>()
                {
                    Filter = f => f.ReviewTemplateId == result.ReviewTemplateId
                });

                List <Rating> ratingList = new List <Rating>();

                foreach (var rating in searchRatingList.Items)
                {
                    ratingList.Add(Mapper.Map <Rating>(rating));
                }

                result.RatingArray = ratingList.OrderBy(x => x.RangeFrom).ToList();
                data = Mapper.Map <List <AnswerItem> >(searchAnswerItem.Items.ToList());

                result.AnswerScore = data;

                return(new Result <EmployeeReview>()
                {
                    Successful = true, Message = "Successfully retrieve records", Model = result
                });
            }
            catch (Exception e)
            {
                return(new Result <EmployeeReview>(e.Message));
            }
        }
        public void CreateAnswer(string questions, long id)
        {
            try
            {
                var searchAnswerItemRes = new AnswerItemDataRepository().Search(new SearchRequest <AnswerItemData>()
                {
                    Filter = f => f.EmployeeReviewId == id
                });

                if (searchAnswerItemRes.SearchTotal > 0)
                {
                    foreach (var item in searchAnswerItemRes.Items)
                    {
                        new AnswerItemDataRepository().Delete(item.Id);
                    }
                }

                var data = questions.Split('|');

                foreach (var question in data)
                {
                    AnswerItem item = new AnswerItem()
                    {
                        EmployeeReviewId = id,
                        Question         = question,
                        EmployeeRemark   = null,
                        EmployeeScore    = 0,
                        SupervisorRemark = null,
                        SupervisorScore  = 0
                    };

                    new AnswerItemDataRepository().Insert(Mapper.Map <AnswerItemData>(item));
                }
            }
            catch (Exception e)
            {
            }
        }