예제 #1
0
        public IEnumerable <BusinessPlan> GetBusinessPlans(BusinessPlanRequest criteria)
        {
            var plans = _businessPlanRepository.GetAll <BusinessPlan>()
                        .Where(b => criteria.Year == 0 || b.Year == criteria.Year)
                        .Where(b => criteria.UserID == 0 || b.UserID == criteria.UserID)
                        .Where(b => b.DeleteDate == null)
                        .AsNoTracking()
                        .IncludeAll()
                        .ToList();

            if (!plans.Any())
            {
                return(plans);
            }

            var users = _userService.GetUsers(new UserRequest()
            {
                UserIDs = plans.Select(b => b.UserID).ToList()
            }).Users;

            foreach (var plan in plans.Where(p => p.Objectives.Any()))
            {
                var user = users.FirstOrDefault(u => u.UserID == plan.UserID);

                if (user == null)
                {
                    continue;
                }

                foreach (var objective in plan.Objectives)
                {
                    var value = user.GetMappedObjectiveProperty(objective.Name);

                    if (value != null)
                    {
                        objective.CurrentValue = value.ToString();
                    }

                    if (user.MetricsUpdateDate != DateTime.MinValue)
                    {
                        objective.CurrentValueDate = user.MetricsUpdateDate;
                    }
                }
            }

            return(plans);
        }
        public IEnumerable <BusinessPlan> GetBusinessPlans(BusinessPlanRequest criteria)
        {
            var proxy = _businessPlanService.CreateProxy();

            return(proxy.GetBusinessPlans(criteria));
        }