예제 #1
0
        public async Task CreateAsync(int idUser, short year, IEnumerable <MboKpiFrontendDTO> kpis, IEnumerable <MboActualsFrontendDTO> actualsDto, int idUserCreate)
        {
            var userMbo = await _repository.GetUserForMboUpdateAsync(idUser);

            var mbo = Mbo.Create(userMbo, year);

            var kpiList    = _repository.GetKpisForMboUpdate(kpis.Select(kpi => kpi.Id).ToList());
            var userCreate = await _repository.GetUserForMboUpdateAsync(idUserCreate);

            var actuals = new Dictionary <Kpi, MonthlyValuesValueObject>();

            foreach (var actual in actualsDto)
            {
                var kpi    = kpiList.Single(kpi => kpi.Id == actual.IdKpi);
                var values = new MonthlyValuesValueObject(actual.Jan, actual.Feb, actual.Mar, actual.Apr, actual.May, actual.Jun, actual.Jul, actual.Aug, actual.Sep, actual.Oct, actual.Nov, actual.Dec);

                actuals.Add(kpi, values);
            }

            var mboRev = MboRev.Create(mbo, kpiList.ToList(), actuals, userCreate);

            mbo.Update(mboRev);

            await _repository.SaveAsync(mbo);
        }
예제 #2
0
        public static MboActuals Create(MboRev mboRev, Kpi kpi, MonthlyValuesValueObject values)
        {
            var entity = new MboActuals()
            {
                MboRev = mboRev, Kpi = kpi, Values = values
            };

            return(entity);
        }
예제 #3
0
        public async Task UpdateAsync(int id, string kpiName, int idUnitOfMeasure, string kpiDesc, string calculationFormula, decimal jan, decimal feb, decimal mar, decimal apr, decimal may, decimal jun, decimal jul, decimal aug, decimal sep, decimal oct, decimal nov, decimal dec, int idUserCreate)
        {
            var kpi = await _repository.GetByIdAsync(id);

            var userCreate = await _repository.GetUserForKpiUpdateAsync(idUserCreate);

            var unitOfMeasure = await _repository.GetUnitOfMeasureForUpdateAsync(idUnitOfMeasure);

            var targets = new MonthlyValuesValueObject(jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec);

            var kpiRev = KpiRev.Create(kpi, kpiName, kpiDesc, calculationFormula, unitOfMeasure, targets, userCreate);

            kpi.Update(kpiRev);

            await _repository.SaveAsync(kpi);
        }
예제 #4
0
        public static KpiRev Create(Kpi kpi, string kpiName, string kpiDesc, string calculationFormula, UnitOfMeasure unitOfMeasure, MonthlyValuesValueObject targets, User userCreator)
        {
            var entity = new KpiRev(userCreator)
            {
                Kpi                = kpi,
                KpiName            = kpiName,
                KpiDesc            = kpiDesc,
                CalculationFormula = calculationFormula,
                UnitOfMeasure      = unitOfMeasure,
                Targets            = targets
            };

            return(entity);
        }