Пример #1
0
        /// <summary>
        /// 扩展方法,计算项目列表projects的某年度year的两金压降工作月报,并填充viewmodel
        /// </summary>
        /// <param name="model"></param>
        /// <param name="projects"></param>
        public static async Task CalculatePerforms(this ProjectYearViewModel model, int year, IEnumerable <Project> projects,
                                                   IProjectService projectService, IPerformService performService)
        {
            var projectIds = from p in projects select p.ProjectId;
            var performs   = await performService.GetYearPerformsOfProjects(year, projectIds);

            var balances = await projectService.GetAnnualBalancesOfProjects(year - 1, projectIds); //取上一年的结转

            model.Year = year;
            model.ProjectRowsDic.Clear();
            foreach (var proj in projects)
            {
                model.ProjectRowsDic.Add(proj.ProjectId, YearRowViewModel.Create(proj, year, balances, performs));
            }
        }
Пример #2
0
        /// <summary>
        /// 利用相关的年度计划和历年结转,生成一个项目年度计划数据行的实例并返回
        /// </summary>
        /// <param name="project"></param>
        /// <param name="plans"></param>
        /// <returns></returns>
        internal static YearRowViewModel Create(Project project, int year,
                                                IEnumerable <AnnualBalance> annualBalances, IEnumerable <Plan> plans)
        {
            var model = YearRowViewModel.Create(project, year, annualBalances);

            var projectPlans = from p in plans
                               where p.ProjectId == project.ProjectId &&
                               p.Year == year
                               select p;

            foreach (var plan in projectPlans)
            {
                model.MonthDataDic[plan.Month] = plan;
            }

            return(model);
        }