Beispiel #1
0
        public ActionResult Record(int indicatorId, int siteId, DateTime?beginDate)
        {
            using (Entity context = new Entity())
            {
                t_indicator indicator = context.t_indicator.Find(indicatorId);
                if (indicator == null)
                {
                    throw new ArgumentException("Invalid indicatorId: " + indicatorId.ToString());
                }

                t_activity activity = indicator.aim.activity;

                t_activity_site activitySite = activity.sites.Where(e => e.site_id == siteId).First();

                if (activitySite == null)
                {
                    throw new ArgumentException(String.Format("Site {0} is not attached to Indicator {1} (Activity {2}).", siteId, indicatorId, activity.activity_id));
                }

                Observation model = new Observation(indicator, activitySite.site, beginDate);

                AccessPass = SecurityGuard(CurrentUser, activity.country_id, activity.activity_id, siteId);
                if (AccessPass == BusinessLayer.Identity.UserSecurityAccess.NoAccess)
                {
                    return(RedirectToAction("NoAccess", "Home"));
                }
                ViewBag.AccessRights = AccessPass;

                return(View(model));
            }
        }
Beispiel #2
0
        public JsonResult AssignSite(int activityId, int siteId, string waveFieldId)
        {
            using (Entity context = new Entity())
            {
                var activity = context.t_activity.Find(activityId);
                if (activity == null)
                {
                    return(GetJsonResult(false, "Invalid activityId: " + activityId.ToString()));
                }

                var site = activity.sites.Where(e => e.site_id == siteId).FirstOrDefault();
                if (site != null)
                {
                    return(GetJsonResult(false, "Site already assigned! siteId:" + siteId.ToString()));
                }

                site = new t_activity_site()
                {
                    activity_id = activityId, site_id = siteId, wave_fieldid = waveFieldId
                };
                context.t_activity_site.Add(site);
                context.SaveChanges();

                context.Entry(site).Reference(e => e.wave).Load();
                return(Json(new
                {
                    success = true,
                    WaveFieldId = site.wave_fieldid,
                    WaveValue = site.wave.get_value_translated(IidCulture.CurrentLanguageId)
                }));
            }
        }
Beispiel #3
0
        public ActivitySite(t_activity_site entity)
        {
            ActivityId       = entity.activity_id;
            SiteId           = entity.site_id;
            SiteName         = entity.site?.name;
            SiteTypeValue    = entity.site?.site_type.value;
            CoachUserId      = entity.coach_user_id;
            SupportStartDate = entity.support_start_date;
            SupportEndDate   = entity.support_end_date;
            WaveFieldId      = entity.wave_fieldid;
            WaveValue        = entity.wave?.value;

            HasObservations = entity.activity?.aims?.SelectMany(a => a.indicators?.SelectMany(i => i.observations))?.Where(s => s.site_id == entity.site_id).Any() ?? false;
        }
Beispiel #4
0
        public ActionResult View(int indicatorId, int siteId)
        {
            using (Entity context = new Entity())
            {
                t_indicator indicator = context.t_indicator.Find(indicatorId);
                if (indicator == null)
                {
                    throw new ArgumentException("Invalid indicatorId: " + indicatorId.ToString());
                }

                t_activity      activity = indicator.aim.activity;
                t_activity_site site     = activity.sites.Where(e => e.site_id == siteId).First();
                if (site == null)
                {
                    throw new ArgumentException(String.Format("Site {0} is not attached to Indicator {1} (Activity {2}).", siteId, indicatorId, activity.activity_id));
                }

                byte languageId = IidCulture.CurrentLanguageId;

                IndicatorSiteObservations model = new IndicatorSiteObservations()
                {
                    ActivityId           = activity.activity_id,
                    ActivityName         = activity.get_name_translated(languageId),
                    IndicatorId          = indicatorId,
                    IndicatorType        = Enumerations.Parse <IndicatorType>(indicator.indicator_type.value),
                    IndicatorTypeFieldId = indicator.indicator_type_fieldid,
                    SiteId                = siteId,
                    IndicatorName         = indicator.get_name_translated(languageId),
                    IndicatorDefinition   = indicator.get_definition_translated(languageId),
                    NumeratorName         = indicator.get_numerator_name_translated(languageId),
                    NumeratorDefinition   = indicator.get_numerator_definition_translated(languageId),
                    DenominatorName       = indicator.get_denominator_name_translated(languageId),
                    DenominatorDefinition = indicator.get_denominator_definition_translated(languageId),
                    DisaggregateByAge     = indicator.disaggregate_by_age,
                    DisaggregateBySex     = indicator.disaggregate_by_sex
                };

                AccessPass = SecurityGuard(CurrentUser, activity.country_id, activity.activity_id, siteId);
                if (AccessPass == BusinessLayer.Identity.UserSecurityAccess.NoAccess)
                {
                    return(RedirectToAction("NoAccess", "Home"));
                }
                ViewBag.AccessRights = AccessPass;

                return(View(model));
            }
        }