Ejemplo n.º 1
0
        private void SetIndicator(int indicatorId)
        {
            t_indicator indicator = Context.t_indicator.Find(indicatorId);

            Indicators          = UserAssignedObjects.GetIndicators(indicator.aim.activity.aims.SelectMany(a => a.indicators), CurrentUser).Select(i => new Indicator(i, false, true, true)).ToList();
            SelectedIndicatorId = indicatorId;

            SetActivity(indicator.aim.activity);
            // TODO: Recurse to project, organization?
        }
Ejemplo n.º 2
0
        public static SelectList GetCountries(int userId, byte languageId, bool addBlank)
        {
            var countries =
                UserAssignedObjects.GetCountries(userId, languageId).OrderBy(c => c.name)
                .Select(x => new { country_id = x.country_id.ToString(), x.name }).ToList();

            if (addBlank)
            {
                countries.Insert(0, new { country_id = "", name = "" });
            }
            return(new SelectList(countries, "country_id", "name"));
        }
Ejemplo n.º 3
0
        public static SelectList GetUserProjects(int userId, byte languageId, bool addBlank)
        {
            var projects =
                UserAssignedObjects.GetProjects(userId, languageId).OrderBy(p => p.name)
                .Select(x => new { project_id = x.project_id.ToString(), x.name }).ToList();

            if (addBlank)
            {
                projects.Insert(0, new { project_id = "", name = "" });
            }
            return(new SelectList(projects, "project_id", "name"));
        }
Ejemplo n.º 4
0
        public Aim(int activityId)
        {
            t_activity activity = Context.t_activity.Find(activityId);

            if (activity == null)
            {
                throw new ArgumentException("Invalid activityId: " + activityId.ToString());
            }

            ActivityId   = activityId;
            ActivityAims =
                UserAssignedObjects.GetAims(activity.aims, CurrentUser)
                .ToDictionary(e => e.aim_id, e => e.get_name_translated(CurrentLanguageId));
        }
Ejemplo n.º 5
0
        public Indicator(int activityId)
        {
            // A little bit different workflow because we are instantiating a new (empty) indicator.
            ActivityId = activityId;

            var activity = Context.t_activity.Find(activityId);
            var aims     =
                UserAssignedObjects.GetAims(activity.aims, CurrentUser)
                .Select(e => new Tuple <int?, string>(e.aim_id, e.get_name_translated(CurrentLanguageId)))
                .ToList();

            aims.Insert(0, new Tuple <int?, string>(null, null));
            ActivityAims = aims;

            AgeRanges = new Dictionary <string, string>();
        }
Ejemplo n.º 6
0
        private void SetProperties(t_aim aim, bool loadChildren, bool translate)
        {
            ActivityId = aim.activity_id;
            AimId      = aim.aim_id;
            Active     = aim.active;
            Sort       = aim.sort;

            if (translate)
            {
                Name = aim.get_name_translated(CurrentLanguageId);
            }
            else
            {
                Name = aim.name;
            }

            if (loadChildren)
            {
                ActivityAims = UserAssignedObjects.GetAims(aim.activity.aims, CurrentUser).ToDictionary(e => e.aim_id, e => e.get_name_translated(CurrentLanguageId));
                Indicators   = UserAssignedObjects.GetIndicators(aim.indicators, CurrentUser).Select(i => new Indicator(i, false, true)).ToList();
            }
        }
Ejemplo n.º 7
0
        private void SetProperties(t_activity activity, bool loadChildren, bool translate)
        {
            ActivityId                   = activity.activity_id;
            ProjectId                    = activity.project_id;
            CountryId                    = activity.country_id;
            StartDate                    = activity.start_date;
            EndDate                      = activity.end_date;
            PrimaryManagerUserId         = activity.primary_manager_userid;
            PrimaryManagerName           = activity.primary_manager?.full_name;
            FunderFieldId                = activity.funder_fieldid;
            FunderValue                  = activity.funder?.value;
            TechnicalAreaFieldId         = activity.technical_area_fieldid;
            TechnicalAreaValue           = activity.technical_area?.value;
            AdditionalManagerUserIds     = activity.additional_managers.Select(m => m.user_id.ToString()).ToList();
            AdditionalManagerNames       = activity.additional_managers.Select(m => m.full_name).ToList();
            TechnicalAreaSubtypeFieldIds = activity.technical_area_subtypes.Select(tast => tast.fieldid).ToList();
            TechnicalAreaSubtypeValues   = activity.technical_area_subtypes.Select(tast => tast.value).ToList();
            Active = activity.active;

            if (translate)
            {
                Name = activity.get_name_translated(CurrentLanguageId);
                OtherKeyInformation = activity.get_other_key_information_translated(CurrentLanguageId);
            }
            else
            {
                Name = activity.name;
                OtherKeyInformation = activity.other_key_information;
            }

            if (loadChildren)
            {
                Aims            = UserAssignedObjects.GetAims(activity.aims, CurrentUser).Select(a => new Aim(a, loadChildren, translate)).ToList();
                Notes           = activity.notes.Select(n => new Note(n)).ToList();
                IsFavorite      = activity.user_favorites.Select(e => e.user_id).Contains(CurrentUser.Id);
                HasObservations = activity.aims?.SelectMany(a => a.indicators?.SelectMany(i => i.observations))?.Any() ?? false;
            }
        }
Ejemplo n.º 8
0
        private void SetProperties(t_indicator entity, bool loadChildren, bool loadParent, bool translate)
        {
            ActivityId   = entity.aim?.activity_id ?? -1; // Refactor as nullable int when possible.
            AimId        = entity.aim_id;
            IndicatorId  = entity.indicator_id;
            TypeFieldId  = entity.indicator_type_fieldid;
            TypeValue    = entity.indicator_type?.value;
            GroupFieldId = entity.group_fieldid;
            GroupValue   = entity.indicator_group?.value;
            DataCollectionFrequencyFieldId = entity.data_collection_frequency_fieldid;
            DataCollectionFrequencyValue   = entity.data_collection_frequency?.value;
            SamplingFieldId    = entity.sampling_fieldid;
            ReportClassFieldId = entity.report_class_fieldid;
            ReportClassValue   = entity.report_class?.value;
            SamplingValue      = entity.sampling?.value;
            ChangeVariable     = entity.change_variable;
            DisaggregateBySex  = entity.disaggregate_by_sex;
            DisaggregateByAge  = entity.disaggregate_by_age;
            if (DisaggregateByAge)
            {
                AgeRanges =
                    entity.indicator_age_ranges
                    .OrderBy(e => e.indicator_age_range_id)
                    .ToDictionary(e => Convert.ToString(e.indicator_age_range_id), e => e.age_range);
            }
            else
            {
                AgeRanges = new Dictionary <string, string>();
            }
            TargetPerformance        = entity.target_performance;
            ThresholdGoodPerformance = entity.threshold_good_performance;
            ThresholdPoorPerformance = entity.threshold_poor_performance;
            IncreaseIsGood           = entity.increase_is_good;
            RatePerFieldId           = entity.rate_per_fieldid;
            RatePerValue             = entity.rate_per?.value;
            Active = entity.active;
            Sort   = entity.sort;

            if (translate)
            {
                Definition            = entity.get_definition_translated(CurrentLanguageId);
                Name                  = entity.get_name_translated(CurrentLanguageId);
                NumeratorName         = entity.get_numerator_name_translated(CurrentLanguageId);
                NumeratorDefinition   = entity.get_numerator_definition_translated(CurrentLanguageId);
                NumeratorSource       = entity.get_numerator_source_translated(CurrentLanguageId);
                DenominatorName       = entity.get_denominator_name_translated(CurrentLanguageId);
                DenominatorDefinition = entity.get_denominator_definition_translated(CurrentLanguageId);
                DenominatorSource     = entity.get_denominator_source_translated(CurrentLanguageId);
                //

                DataCollectionFrequencyValue = entity.get_data_frequency_translated(CurrentLanguageId, DataCollectionFrequencyValue);
            }
            else
            {
                Definition            = entity.definition;
                Name                  = entity.name;
                NumeratorName         = entity.numerator_name;
                NumeratorDefinition   = entity.numerator_definition;
                NumeratorSource       = entity.numerator_source;
                DenominatorName       = entity.denominator_name;
                DenominatorDefinition = entity.denominator_definition;
                DenominatorSource     = entity.denominator_source;
            }

            if (loadParent)
            {
                Aim = new Aim(AimId, false);
            }

            if (loadChildren)
            {
                ActivityAims =
                    UserAssignedObjects.GetAims(entity.aim.activity.aims, CurrentUser)
                    .Select(e => new Tuple <int?, string>(e.aim_id, e.get_name_translated(CurrentLanguageId)))
                    .ToList();
                Sites =
                    entity.aim.activity.sites
                    .Select(e => new ActivitySite(e))
                    .ToList();
                HasObservations = entity.observations?.Any() ?? false;
                OtherIndicators =
                    UserAssignedObjects.GetIndicators(entity.aim.indicators, CurrentUser)
                    .Where(e => e.indicator_id != IndicatorId)
                    .Select(e => new Indicator(e, false, true))
                    .ToList();
            }
        }