예제 #1
0
        public static void UpdateEditIndicatorPageViewModelFund(this EditIndicatorPageViewModel <FundBasicDataViewModel> model, ClientFieldData[] formData)
        {
            model.UpdateEditIndicatorPageViewModelCommon(formData);

            model.Indicator.Specific.Disaggretations = formData.GetSubindicatorData("FundDisaggregation");

            var field = formData.First(x => x.Name == "isActive");

            if (field != null)
            {
                model.Indicator.Specific.IsActive = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "fund");
            if (field != null)
            {
                model.Indicator.Specific.FundId = int.Parse(field.Value);
            }

            field = formData.FirstOrDefault(x => x.Name == "theme");
            model.Indicator.Specific.ThemeIds.Clear();
            if (field != null)
            {
                var list = field.Value.Split(',').Select(x => int.Parse(x)).ToList();
                model.Indicator.Specific.ThemeIds = list;
            }
        }
예제 #2
0
        private EditIndicatorPageViewModel <FWBasicDataViewModel> GetIndicator(int indicatorId)
        {
            var havePermission = SetViewBagGlobalPermissionAndCheckAny(ActionEnum.FWIndicatorWritePermission, ActionEnum.FWIndicatorTemplateWritePermission);

            EditIndicatorPageViewModel <FWBasicDataViewModel> result = null;

            if (havePermission)
            {
                result = new EditIndicatorPageViewModel <FWBasicDataViewModel>()
                {
                    ControllerName = base.ControllerName
                };

                var response = (GetIndicatorResponse <FWBasicDataViewModel>)_resultFrameworkService.GetIndicator(indicatorId);
                if (response.IsValid)
                {
                    result.Indicator = response.Indicator;
                }

                SetViewBagErrorMessageInvalidResponse(response);
                SetViewBagEditIndicator(result);
            }
            else
            {
                ViewBag.ErrorMessage = Localization.GetText(FRIENDLY_PERMISSION_ERROR);
            }

            return(result);
        }
예제 #3
0
        private void SetViewBagEditIndicator(EditIndicatorPageViewModel <FundBasicDataViewModel> model)
        {
            ViewBag.UnitOfMeasureList = new List <SelectListItem>();
            ViewBag.FundList          = new List <SelectListItem>();
            ViewBag.ThemeList         = new List <MultiDropDownItem>();

            this.SetViewBagListFromCatalog(_catalogService,
                                           new Dictionary <ConvergenceMasterDataTypeEnum, string>
            {
                { ConvergenceMasterDataTypeEnum.UnitMeasureCGM, "UnitOfMeasureList" },
            });

            var responseThemes = _catalogService.GetMasterDataListByTypeCode(false, ConvergenceMasterDataTypeEnum.IndicatorTheme.GetEnumDescription());

            if (responseThemes.MasterDataCollection == null)
            {
                responseThemes.MasterDataCollection = new List <MasterDataViewModel>();
            }

            ViewBag.ThemeList = responseThemes.MasterDataCollection.ConvertToMultiDropDownItems();

            var responseFund = _fundService.GetFunds();

            if (responseFund.IsValid)
            {
                ViewBag.FundList = responseFund.Funds;
            }

            ViewBag.indicatorTemplateList = base.GetTemplatesCombo(_fundService);
        }
예제 #4
0
        private void SetViewBagEditIndicator(
            EditIndicatorPageViewModel <StandardizedBasicDataViewModel> model)
        {
            ViewBag.indicatorTemplateList = base.GetTemplatesCombo(_standardizedOutputService);
            ViewBag.UnitMeasureList       = new List <SelectListItem>();
            ViewBag.BusinessLineList      = new List <SelectListItem>();
            ViewBag.OutputGroupList       = new List <SelectListItem>();
            ViewBag.ThemeList             = new List <MultiDropDownItem>();
            ViewBag.FundsIndByTheme       = new Dictionary <int, List <Tuple <string, List <MultiDropDownItem> > > >();

            var attributesResponse = _standardizedOutputService
                                     .GetAttributesForTemplate(model.Indicator.Common.TemplateVersionId);

            if (attributesResponse.IsValid)
            {
                List <AttributeCategoryViewModel> simpleLevelList = null;
                if (attributesResponse.SimpleLevelAttributes.ContainsKey(IndicatorAttributeTypeEnum.BusinessLine))
                {
                    simpleLevelList          = attributesResponse.SimpleLevelAttributes[IndicatorAttributeTypeEnum.BusinessLine];
                    ViewBag.BusinessLineList = simpleLevelList.ConvertToSelectListItem();
                }

                if (attributesResponse.SimpleLevelAttributes.ContainsKey(IndicatorAttributeTypeEnum.OutputGroup))
                {
                    simpleLevelList         = attributesResponse.SimpleLevelAttributes[IndicatorAttributeTypeEnum.OutputGroup];
                    ViewBag.OutputGroupList = simpleLevelList.ConvertToSelectListItem();
                }
            }

            this.SetViewBagListFromCatalog(
                _catalogService,
                new Dictionary <ConvergenceMasterDataTypeEnum, string>
            {
                { ConvergenceMasterDataTypeEnum.UnitMeasureCGM, "UnitMeasureList" },
            });

            var responseThemes = _commonTCMService.GetOutputThemes(model.Indicator.Specific.ThemeIds)
                                 .Select(x => new MasterDataViewModel
            {
                MasterId = x.ConvergenceMasterDataId,
                NameEn   = x.NameEn,
                NameEs   = x.NameEs,
                NameFr   = x.NameFr,
                NamePt   = x.NamePt
            })
                                 .ToList();

            ViewBag.ThemeList = responseThemes.ConvertToMultiDropDownItems();

            var themesIds           = responseThemes.Select(x => x.MasterId);
            var fundByThemeResponse = _standardizedOutputService
                                      .GetIndicatorsAndFundByTheme(themesIds.ToArray());

            if (fundByThemeResponse.IsValid)
            {
                ViewBag.FundsIndByTheme = ConvertToMultiDropDownItem(fundByThemeResponse.FundsByTheme);
            }
        }
예제 #5
0
        public static void UpdateEditIndicatorPageViewModelStandardized(this EditIndicatorPageViewModel <StandardizedBasicDataViewModel> model, ClientFieldData[] formData)
        {
            model.UpdateEditIndicatorPageViewModelCommon(formData);

            var field = formData.First(x => x.Name == "indicatorNumberPrefix");

            if (field != null)
            {
                model.Indicator.Common.IndicatorNumber = string.Format("{0}.{1}", field.Value, model.Indicator.Common.IndicatorNumber);
            }

            field = formData.First(x => x.Name == "isActive");
            if (field != null)
            {
                model.Indicator.Specific.IsActive = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "isContribution");
            if (field != null)
            {
                model.Indicator.Specific.IsContribution = GetBoolValue(field.Value);
            }

            field = formData.FirstOrDefault(x => x.Name == "businessLineId");
            model.Indicator.Specific.BusinessLineId = 0;
            if (field != null)
            {
                model.Indicator.Specific.BusinessLineId = int.Parse(field.Value);
            }

            field = formData.FirstOrDefault(x => x.Name == "outputGroupId");
            model.Indicator.Specific.OutputGroupId = 0;
            if (field != null)
            {
                model.Indicator.Specific.OutputGroupId = int.Parse(field.Value);
            }

            field = formData.FirstOrDefault(x => x.Name == "theme");
            model.Indicator.Specific.ThemeIds.Clear();
            if (field != null)
            {
                var list = field.Value.Split(',').Select(x => int.Parse(x)).ToList();
                model.Indicator.Specific.ThemeIds = list;
            }

            model.Indicator.Specific.FundIdsByTheme =
                model.Indicator.Specific.FundIdsByTheme.ConvertFundIdsByTheme(
                    model.Indicator.Specific.ThemeIds,
                    formData);

            model.Indicator.Specific.Disaggretations = formData.GetSubindicatorData("StandardizedDisaggregation");
        }
예제 #6
0
        private void SetViewBagEditIndicator(EditIndicatorPageViewModel <FWBasicDataViewModel> model)
        {
            ViewBag.indicatorTemplateList = base.GetTemplatesCombo(_resultFrameworkService);
            ViewBag.PriorityAreaList      = new List <MultiDropDownItem>();
            ViewBag.DisaggregationList    = new List <MultiDropDownItem>();
            ViewBag.TypeCRFList           = new List <SelectListItem>();
            ViewBag.UnitMeasureList       = new List <SelectListItem>();

            var attributesResponse = _resultFrameworkService.GetAttributesForTemplate(model.Indicator.Common.TemplateVersionId);

            if (attributesResponse.IsValid)
            {
                List <AttributeCategoryViewModel> simpleLevelList = null;
                List <AttributeLevelViewModel>    multiLevelList  = null;
                if (attributesResponse.SimpleLevelAttributes.ContainsKey(IndicatorAttributeTypeEnum.TypeCRF))
                {
                    simpleLevelList     = attributesResponse.SimpleLevelAttributes[IndicatorAttributeTypeEnum.TypeCRF];
                    ViewBag.TypeCRFList = simpleLevelList.ConvertToSelectListItem();
                }

                if (attributesResponse.MultiLevelAttributes.ContainsKey(IndicatorAttributeTypeEnum.PriorityArea))
                {
                    multiLevelList           = attributesResponse.MultiLevelAttributes[IndicatorAttributeTypeEnum.PriorityArea];
                    ViewBag.PriorityAreaList = multiLevelList.ConvertToMultiDropDownItems();
                }

                if (attributesResponse.MultiLevelAttributes.ContainsKey(IndicatorAttributeTypeEnum.Disaggregation))
                {
                    multiLevelList             = attributesResponse.MultiLevelAttributes[IndicatorAttributeTypeEnum.Disaggregation];
                    ViewBag.DisaggregationList = multiLevelList.ConvertToMultiDropDownItems();
                }
            }

            var masterTypeUOM = GetUOMMasterTypeByTemplate(model.Indicator.Common.TemplateVersionId);

            this.SetViewBagListFromCatalog(
                _catalogService, new Dictionary <ConvergenceMasterDataTypeEnum, string>
            {
                { masterTypeUOM, "UnitMeasureList" },
            });
        }
예제 #7
0
        public static void UpdateEditIndicatorPageViewModelFramework(this EditIndicatorPageViewModel <FWBasicDataViewModel> model, ClientFieldData[] formData)
        {
            model.UpdateEditIndicatorPageViewModelCommon(formData);

            var field = formData.FirstOrDefault(x => x.Name == "priorityAreaId");

            model.Indicator.Specific.PriorityAreaIds.Clear();
            if (field != null)
            {
                var list = field.Value.Split(',').Select(x => int.Parse(x)).ToList();
                model.Indicator.Specific.PriorityAreaIds = list;
            }

            field = formData.FirstOrDefault(x => x.Name == "disaggregationId");
            model.Indicator.Specific.DisaggregationIds.Clear();
            if (field != null)
            {
                var list = field.Value.Split(',').Select(x => int.Parse(x)).ToList();
                model.Indicator.Specific.DisaggregationIds = list;
            }

            model.Indicator.Specific.Subindicators = formData.GetSubindicatorData("CRFSubindicator");

            field = formData.First(x => x.Name == "isActive");
            if (field != null)
            {
                model.Indicator.Specific.IsActive = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "isContribution");
            if (field != null)
            {
                model.Indicator.Specific.IsContribution = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "isStrategicAlignment");
            if (field != null)
            {
                model.Indicator.Specific.IsStrategicAlignment = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "isAlignment");
            if (field != null)
            {
                model.Indicator.Specific.isAlignment = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "isRegionalContext");

            if (field != null)
            {
                model.Indicator.Specific.IsRegionalContext = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "isLinkToCS");
            if (field != null)
            {
                model.Indicator.Specific.IsLinkToCS = GetBoolValue(field.Value);
            }

            field = formData.First(x => x.Name == "isRMIndicatorRequirement");
            if (field != null)
            {
                model.Indicator.Specific.IsRMIndicatorRequirement = GetBoolValue(field.Value);
            }

            field = formData.FirstOrDefault(x => x.Name == "typeCRFId");
            model.Indicator.Specific.TypeCRFId = 0;
            if (field != null)
            {
                model.Indicator.Specific.TypeCRFId = int.Parse(field.Value);
            }
        }
예제 #8
0
        private static void UpdateEditIndicatorPageViewModelCommon <T>(this EditIndicatorPageViewModel <T> model, ClientFieldData[] formData) where T : new()
        {
            var field = formData.FirstOrDefault(x => x.Name == "indicatorTemplate");

            if (field != null)
            {
                model.Indicator.Common.TemplateVersionId = int.Parse(field.Value);
            }

            field = formData.First(x => x.Name == "indicatorNumber");
            model.Indicator.Common.IndicatorNumber = null;
            if (field != null)
            {
                var indicatorNumber = field.Value.ToString();
                model.Indicator.Common.IndicatorNumber = indicatorNumber;
            }

            field = formData.First(x => x.Name == "effectiveDate");
            model.Indicator.Common.EffectiveDate = null;
            if (field != null)
            {
                var date = DateTime.ParseExact(field.Value, DATETIME_PARSE_FORMAT, CultureInfo.InvariantCulture);
                model.Indicator.Common.EffectiveDate = date;
            }

            field = formData.First(x => x.Name == "expirationDate");
            model.Indicator.Common.ExpirationDate = null;
            if (field != null)
            {
                var date = DateTime.ParseExact(field.Value, DATETIME_PARSE_FORMAT, CultureInfo.InvariantCulture);
                model.Indicator.Common.ExpirationDate = date;
            }

            field = formData.First(x => x.Name == "indicatorNameEn");
            if (field != null)
            {
                model.Indicator.Common.IndicatorNameEn = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "indicatorNameEs");
            model.Indicator.Common.IndicatorNameEs = string.Empty;
            if (field != null)
            {
                model.Indicator.Common.IndicatorNameEs = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "indicatorNamePt");
            model.Indicator.Common.IndicatorNamePt = string.Empty;
            if (field != null)
            {
                model.Indicator.Common.IndicatorNamePt = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "indicatorNameFr");
            model.Indicator.Common.IndicatorNameFr = string.Empty;
            if (field != null)
            {
                model.Indicator.Common.IndicatorNameFr = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "unitMeasure");
            model.Indicator.Common.UnitMeasureId = null;
            if (field != null)
            {
                model.Indicator.Common.UnitMeasureId = int.Parse(field.Value);
            }

            field = formData.FirstOrDefault(x => x.Name == "unitMeasureEn");
            model.Indicator.Common.UnitMeasureEn = string.Empty;
            if (field != null)
            {
                model.Indicator.Common.UnitMeasureEn = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "unitMeasureEs");
            model.Indicator.Common.UnitMeasureEs = string.Empty;
            if (field != null)
            {
                model.Indicator.Common.UnitMeasureEs = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "unitMeasurePt");
            model.Indicator.Common.UnitMeasurePt = string.Empty;
            if (field != null)
            {
                model.Indicator.Common.UnitMeasurePt = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "unitMeasureFr");
            model.Indicator.Common.UnitMeasureFr = string.Empty;
            if (field != null)
            {
                model.Indicator.Common.UnitMeasureFr = field.Value;
            }

            field = formData.FirstOrDefault(x => x.Name == "strAlingmentImageAsociated");
            model.Indicator.Common.StrAlingImageId = null;
            if (field != null && !string.IsNullOrEmpty(field.Value))
            {
                model.Indicator.Common.StrAlingImageId = int.Parse(field.Value);
            }

            model.Indicator.Common.TechnicalFields.Clear();
            var technicalFields = formData.Where(x => x.Name == "technicalFieldValue");

            foreach (var item in technicalFields)
            {
                var it = new TechnicalFieldViewModel()
                {
                    TechnicalFieldTemplateId = int.Parse(item.Id),
                    Value = item.Value
                };
                model.Indicator.Common.TechnicalFields.Add(it);
            }
        }