Example #1
0
        public string SaveUnitChangeSetting(long uid, int pId, string type, int units)
        {
            UserSettings aqufitSettings = aqufitEntities.UserSettings.FirstOrDefault <UserSettings>(us => us.UserKey == uid && us.PortalKey == pId);

            if (aqufitSettings != null)
            {
                Affine.Utils.UnitsUtil.MeasureUnit u = (Affine.Utils.UnitsUtil.MeasureUnit)Enum.ToObject(typeof(Affine.Utils.UnitsUtil.MeasureUnit), units);
                switch (type.ToLower())
                {
                case "weight":
                    if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG)      // check units
                    {
                        aqufitSettings.WeightUnits = (short)u;
                    }
                    break;

                case "height":
                    if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_FT_IN || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM)      // check units
                    {
                        aqufitSettings.HeightUnits = (short)u;
                    }
                    break;

                case "distance":
                    if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM)      // check units
                    {
                        aqufitSettings.DistanceUnits = (short)u;
                    }
                    break;

                case "bodymeasure":
                    if (u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES || u == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM)     // check units
                    {
                        aqufitSettings.BodyMeasureUnits = (short)u;
                    }
                    break;
                }
                aqufitEntities.SaveChanges();
                return("SUCESS");
            }
            // TODO: log an alerts (iphone alert)
            //DotNetNuke.Services.Log.EventLog.EventLogController objEventLog = new DotNetNuke.Services.Log.EventLog.EventLogController();
            //objEventLog.AddLog(objNewUser, PortalSettings, objNewUser.UserID, atiSlimControl.Email, DotNetNuke.Services.Log.EventLog.EventLogController.EventLogType.ADMIN_ALERT);
            string body = "UtilService.SaveUnitChangeSetting: No UserSettings for user Id: " + uid + " Portal: " + pId;

            DotNetNuke.Services.Mail.Mail.SendMail("*****@*****.**", "*****@*****.**", "", "App ERROR", body, "", "HTML", "", "", "", "");


            return("FAIL");
        }
Example #2
0
    private void SetupUnit(Affine.Utils.UnitsUtil.MeasureUnit unit)
    {
        switch (unit)
        {
        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM:
            ddlUnitsType.Items.Add(new ListItem("cm", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM));
            break;

        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES:
            ddlUnitsType.Items.Add(new ListItem("in", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES));
            break;

        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG:
            ddlUnitsType.Items.Add(new ListItem("Kg", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG));
            break;

        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM:
            ddlUnitsType.Items.Add(new ListItem("KM", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM));
            break;

        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS:
            ddlUnitsType.Items.Add(new ListItem("lbs", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS));
            break;

        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M:
            ddlUnitsType.Items.Add(new ListItem("M", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M));
            break;

        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES:
            ddlUnitsType.Items.Add(new ListItem("Mi", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES));
            break;

        case Affine.Utils.UnitsUtil.MeasureUnit.UNIT_FT_IN:
            ddlUnitsType.Items.Add(new ListItem("ft/in", "" + (int)Affine.Utils.UnitsUtil.MeasureUnit.UNIT_FT_IN));
            break;

        default:
            throw new Affine.Utils.InvalidUnitsException("Unknown Units: ATI_UnitControl.SetupUnit");
        }
    }
Example #3
0
        protected void bBodyComposition_Click(object sender, EventArgs e)
        {
            // TODO: check inputs for error
            UserSettings userSettings = new UserSettings();

            if (atiBodyComposition.BirthDate == null)
            {
                lErrorText.Text = "You must enter your Birthdate.";
                return;
            }
            if (string.IsNullOrEmpty(atiBodyComposition.Weight))
            {
                lErrorText.Text = "You must enter your weight.";
                return;
            }
            userSettings.BirthDate = Convert.ToDateTime(atiBodyComposition.BirthDate);
            //userSettings.DistanceUnits = (short)atiBodyComposition.DistanceUnits;
            userSettings.HeightUnits = (short)atiBodyComposition.HeightUnits;
            userSettings.WeightUnits = (short)atiBodyComposition.WeightUnits;
            userSettings.UserKey     = UserId;
            userSettings.PortalKey   = PortalId;
            userSettings.Sex         = atiBodyComposition.Gender;

            aqufitEntities aqufitEntities = new aqufitEntities();

            aqufitEntities.AddToUserSettings(userSettings);


            BodyComposition bc = new BodyComposition()
            {
                UserKey      = UserId,
                PortalKey    = PortalId,
                FitnessLevel = atiBodyComposition.FitnessLevel
            };

            // need height and weight conversions
            bc.Modified       = DateTime.Now;
            bc.BodyFatPercent = 0.0;
            bc.Weight         = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyComposition.Weight), atiBodyComposition.WeightUnits);

            // bc.Height = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyComposition.Height), atiBodyComposition.HeightUnits);
            aqufitEntities.AddToBodyComposition(bc);

            BodyMeasurments bm = new BodyMeasurments()
            {
                UserKey   = UserId,
                PortalKey = PortalId
            };

            Affine.Utils.UnitsUtil.MeasureUnit bmUnits = atiBodyComposition.HeightUnits == Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES ? Affine.Utils.UnitsUtil.MeasureUnit.UNIT_INCHES : Affine.Utils.UnitsUtil.MeasureUnit.UNIT_CM;
            if (!string.IsNullOrEmpty(atiBodyMeasurements.Chest))
            {
                bm.Chest = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Chest), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.Neck))
            {
                bm.Neck = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Neck), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.Shoulders))
            {
                bm.Shoulders = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Shoulders), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.Stomach))
            {
                bm.Stomach = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Stomach), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.Waist))
            {
                bm.Waist = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Waist), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.Hips))
            {
                bm.Hips = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.Hips), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.BicepLeft))
            {
                bm.BicepLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.BicepLeft), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.BicepRight))
            {
                bm.BicepRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.BicepRight), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.ForearmLeft))
            {
                bm.ForearmLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ForearmLeft), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.ForearmRight))
            {
                bm.ForearmRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ForearmRight), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.ThighLeft))
            {
                bm.ThighLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ThighLeft), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.ThighRight))
            {
                bm.ThighRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.ThighRight), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.CalfLeft))
            {
                bm.CalfLeft = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.CalfLeft), bmUnits);
            }
            if (!string.IsNullOrEmpty(atiBodyMeasurements.CalfLeft))
            {
                bm.CalfRight = Affine.Utils.UnitsUtil.unitsToSystemDefualt(Convert.ToDouble(atiBodyMeasurements.CalfRight), bmUnits);
            }
            bm.Modified = DateTime.Now;
            aqufitEntities.AddToBodyMeasurments(bm);

            aqufitEntities.SaveChanges();

            bBodyComposition.Visible = false;
            bProfile.Visible         = true;
            RadAjaxManager1.ResponseScripts.Add("AjaxResponseSuccess();");
        }
Example #4
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Page_Load runs when the control is loaded
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// </history>
        /// -----------------------------------------------------------------------------
        protected void Page_Load(System.Object sender, System.EventArgs e)
        {
            base.Page_Load(sender, e);
            try
            {
                ServiceReference service = new ServiceReference("~/DesktopModules/ATI_Base/resources/services/StreamService.asmx");
                service.InlineScript = true;
                ScriptManager.GetCurrent(Page).Services.Add(service);
                imgAd.Src         = ResolveUrl("~/images/iphoneAd.png");
                imgCheck.ImageUrl = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iCheck.png");

                if (!Page.IsPostBack && !Page.IsCallback)
                {
                    imgSearch.Src = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iSearch.png");
                    imgCenter.Src = ResolveUrl("~/DesktopModules/ATI_Base/resources/images/iCenter.png");
                    aqufitEntities entities = new aqufitEntities();
                    long           rId      = 0;
                    if (HttpContext.Current.Items["r"] != null)
                    {
                        rId = Convert.ToInt64(HttpContext.Current.Items["r"]);
                    }
                    else if (Request["r"] != null)
                    {
                        rId = Convert.ToInt64(Request["r"]);
                    }
                    else if (HttpContext.Current.Items["w"] != null)
                    {
                        long workoutId = Convert.ToInt64(HttpContext.Current.Items["w"]);
                        rId = entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workoutId).Select(w => w.WorkoutExtendeds.FirstOrDefault().MapRoute.Id).FirstOrDefault();
                    }
                    else if (Request["w"] != null)
                    {
                        long workoutId = Convert.ToInt64(Request["w"]);
                        rId = entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workoutId).Select(w => w.WorkoutExtendeds.FirstOrDefault().MapRoute.Id).FirstOrDefault();
                    }
                    // Are we viewing a specific route ?
                    if (rId > 0)
                    {
                        hiddenRouteKey.Value = "" + rId;

                        MapRoute route = entities.MapRoutes.Include("UserSetting").Include("MapRoutePoints").FirstOrDefault(m => m.Id == rId);
                        if (base.UserSettings != null)
                        {
                            bAddRoute.Visible = entities.User2MapRouteFav.FirstOrDefault(mr => mr.MapRoute.Id == route.Id && mr.UserSettingsKey == UserSettings.Id) == null;
                        }
                        Affine.Utils.UnitsUtil.MeasureUnit unit = this.UserSettings != null && this.UserSettings.DistanceUnits != null?Affine.Utils.UnitsUtil.ToUnit(this.UserSettings.DistanceUnits.Value) : Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES;

                        string dist = Math.Round(Affine.Utils.UnitsUtil.systemDefaultToUnits(route.RouteDistance, unit), 2) + " " + Affine.Utils.UnitsUtil.unitToStringName(unit);
                        lRouteTitle.Text = route.Name + " (" + dist + ")";
                        lRouteInfo.Text  = "<span>A " + dist + " route posted by <a class=\"username\" href=\"/" + route.UserSetting.UserName + "\">" + route.UserSetting.UserName + "</a> on " + route.CreationDate.ToShortDateString() + "</span>";
                        double centerLat = (route.LatMax + route.LatMin) / 2;
                        double centerLng = (route.LngMax + route.LngMin) / 2;
                        atiGMapView.Lat = centerLat;
                        atiGMapView.Lng = centerLng;
                        if (route.ThumbZoom.HasValue)
                        {
                            atiGMapView.Zoom = (short)(route.ThumbZoom.Value + 2);
                        }
                        atiGMapView.Route      = route;
                        atiProfileImg.Settings = route.UserSetting;
                        atiRoutePanel.Visible  = false;
                        atiRouteViewer.Visible = true;

                        string js = string.Empty;

                        //js += "Affine.WebService.StreamService.GetRoutes(" + centerLat + ", " + centerLng + ", 10, 0, 5, 'distance', function (json) { ";
                        js += "Aqufit.Page.atiSimilarRouteListScript.dataBinder = function(skip, take){ \n";
                        js += "     Affine.WebService.StreamService.GetSimilarRoutes(" + rId + ", 10, skip, take, 'distance', function (json) { \n";
                        js += "         Aqufit.Page.atiSimilarRouteListScript.generateStreamDom(json); \n";
                        js += "     }); \n";
                        js += "};";
                        js += " Aqufit.Page.atiSimilarRouteListScript.dataBinder(0,5); ";
                        atiShareLink.ShareLink  = "http://" + Request.Url.Host + "/route/" + route.Id;
                        atiShareLink.ShareTitle = "FlexFWD.com Mapped Route: \"" + route.Name + "\"";

                        routeTabTitle.Text = "&nbsp;" + (string.IsNullOrWhiteSpace(route.Name) ? "Untitled" : route.Name);

                        Affine.WebService.StreamService ss = new WebService.StreamService();
                        string json = ss.getStreamDataForRoute(route.Id, 0, 5);
                        //generateStreamDom

                        ScriptManager.RegisterStartupScript(this, Page.GetType(), "SimilarRouteList", "$(function(){ " + js + " Aqufit.Page.atiStreamScript.generateStreamDom('" + json + "'); });", true);
                    }
                    else
                    {
                        if (Settings["Configure"] != null && Convert.ToString(Settings["Configure"]).Equals("ConfigureMyRoutes"))
                        {
                            atiMyRoutePanel.Visible = true;
                            mapContainer.Visible    = false;
                            atiRoutePanel.Visible   = true;
                            routeTabTitle.Text      = "My Routes";
                            liMyRoutes.Visible      = false;
                            liFindRoute.Visible     = true;
                            WebService.StreamService streamService = new WebService.StreamService();
                            string json = streamService.GetMyRoutes(base.UserSettings.Id, 0, 10, "date");
                            string js   = string.Empty;
                            //js += "Affine.WebService.StreamService.GetRoutes(" + centerLat + ", " + centerLng + ", 10, 0, 5, 'distance', function (json) { ";
                            js += "$(function(){ Aqufit.Page.atiRouteListScript.isMyRoutes = true; Aqufit.Page.atiRouteListScript.generateStreamDom('" + json + "'); \n";
                            js += "     Aqufit.Page.atiRouteListScript.dataBinder = function(skip, take){ \n";
                            js += "         Affine.WebService.StreamService.GetMyRoutes(" + base.UserSettings.Id + ", skip, take, 'date', function (json) { \n";
                            js += "             Aqufit.Page.atiRouteListScript.generateStreamDom(json); \n";
                            js += "         }); \n";
                            js += "     } \n";
                            js += " }); \n";

                            ScriptManager.RegisterStartupScript(this, Page.GetType(), "RouteList", js, true);
                        }
                        else
                        {
                            routeTabTitle.Text     = "Routes";
                            atiRoutePanel.Visible  = true;
                            atiRouteViewer.Visible = false;
                            SetupPage();        // do normal page setup
                        }
                    }
                }
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //
        // CA - this will need to be cleaned up a lot.. but here is the iteration one version
        // ** People can view workouts in 4 modes (everyone, watchlist, friends, just them)
        //     -In the case of running, cycling, swimming, and STANDARD crossfit Wods... we are going to
        //      be storing peoples best times for (distance rnages) and standard wods... so in these cases
        //      we can shorted the query time when we do an "everyone" query
        //     -Watch list and friends we do the work of getting every time that person did the workout.. not just
        //      there best times.
        //     -Same for the (you only) view
        //

        private void LoadFlexDataForWorkout(Workout workout, Affine.Utils.ConstsUtil.GraphContext context)
        {
            Affine.Data.Managers.IDataManager dataManager = Affine.Data.Managers.LINQ.DataManager.Instance;

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            // onload we send friend, watch, and group member data that is needed to the app
            aqufitEntities entities  = new aqufitEntities();
            IList <long>   friendIds = entities.UserFriends.Where(f => (f.SrcUserSettingKey == ProfileSettings.Id || f.DestUserSettingKey == ProfileSettings.Id)).Select(f => (f.SrcUserSettingKey == ProfileSettings.Id ? f.DestUserSettingKey : f.SrcUserSettingKey)).ToList();

            friendIds.Add(ProfileSettings.Id);

            // send the persons profile through
            var profile = new { UserName = ProfileSettings.UserName, Id = ProfileSettings.Id, FirstName = ProfileSettings.UserFirstName, LastName = ProfileSettings.UserLastName };

            hiddenProfileJson.Value = serializer.Serialize(profile);

            var friends = entities.UserSettings.OfType <User>().Where(LinqUtils.BuildContainsExpression <User, long>(s => s.Id, friendIds)).Select(u => new { Id = u.Id, Un = u.UserName, Fn = u.UserFirstName, Ln = u.UserLastName }).ToArray();

            hiddenFriendJson.Value = serializer.Serialize(friends);
            // get groups
            long[]         groupIds  = entities.UserFriends.Where(f => (f.SrcUserSettingKey == ProfileSettings.Id || f.DestUserSettingKey == ProfileSettings.Id) && f.Relationship > 0).Select(f => f.SrcUserSettingKey == ProfileSettings.Id ? f.DestUserSettingKey : f.SrcUserSettingKey).ToArray();
            UserSettings[] groupList = entities.UserSettings.OfType <Group>().Where(LinqUtils.BuildContainsExpression <UserSettings, long>(us => us.Id, groupIds)).OrderBy(f => f.UserName).ToArray();
            var            groups    = entities.UserSettings.OfType <Group>().Where(LinqUtils.BuildContainsExpression <Group, long>(s => s.Id, groupIds)).Select(u => new { Id = u.Id, Un = u.UserName }).ToArray();

            hiddenGroupJson.Value = serializer.Serialize(groups);
            // next we load the workout compare to all (friends)

            Affine.WebService.StreamService ss = new WebService.StreamService();

            //hiddenWorkout.Value = ss.getWorkout(workout.Id);
            Affine.Data.json.Workout       jsonWorkout     = dataManager.workoutToJsonWorkout(workout);
            Affine.Data.json.WOD           wod             = null;
            Affine.Data.json.WorkoutData[] jsonWorkoutData = null;
            //var workoutJson = new { Id = workout.Id, WorkoutTypeKey = workout.WorkoutTypeKey, Title = workout.Title, Date = workout.Date.ToLocalTime().ToShortDateString(), DataSrc = workout.DataSrc };

            Affine.Utils.UnitsUtil.MeasureUnit weight = base.WeightUnits;
            if (workout.WorkoutTypeKey == (int)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT)
            {
                if (context == Utils.ConstsUtil.GraphContext.DEFAULT)
                {   // default context for crossfit is the watchlist
                    context = Utils.ConstsUtil.GraphContext.WATCHLIST;
                }
                // if this is a crossfit workout
                // we want to get ALL the same WoDs for you and your friends
                IQueryable <Workout> workoutDataQuery = context == Utils.ConstsUtil.GraphContext.EVERYONE ?
                                                        entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id).AsQueryable()
                                    :
                                                        context == Utils.ConstsUtil.GraphContext.WATCHLIST ?
                                                        entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id).Where(LinqUtils.BuildContainsExpression <Workout, long>(w => w.UserSetting.Id, friendIds)).AsQueryable()
                                    :
                                                        context == Utils.ConstsUtil.GraphContext.FRIENDS ?
                                                        entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id).Where(LinqUtils.BuildContainsExpression <Workout, long>(w => w.UserSetting.Id, friendIds)).AsQueryable()
                                    :
                                                        entities.UserStreamSet.Include("UserSettings").OfType <Workout>().Where(w => w.WOD.Id == workout.WOD.Id && w.UserSetting.Id == ProfileSettings.Id).AsQueryable();
                var workoutData = workoutDataQuery.Select(w => new { Id = w.Id, UsKey = w.UserSetting.Id, Un = w.UserSetting.UserName, T = w.Duration, S = w.Score, M = w.Max, Rx = w.RxD, D = w.Date }).ToArray();
                wod = new Affine.Data.json.WOD()
                {
                    Id = workout.WOD.Id, Standard = workout.WOD.Standard, Type = workout.WOD.WODType.Id, Name = workout.WOD.Name, Description = workout.WOD.Description
                };
                if (wod.Type == (int)Affine.Utils.WorkoutUtil.WodType.TIMED)
                {   // time in sec
                    jsonWorkoutData = workoutData.OrderByDescending(w => w.T).Select(w => new Affine.Data.json.WorkoutData()
                    {
                        UId = w.Un + "_" + w.Id, Id = w.Id, S = (double)w.T, Un = w.Un, D = w.D.ToLocalTime().ToShortDateString(), Rx = (w.Rx.HasValue ? w.Rx.Value : false)
                    }).ToArray();
                }
                else if (wod.Type == (int)Affine.Utils.WorkoutUtil.WodType.MAX_WEIGHT)
                {
                    jsonWorkoutData = workoutData.OrderByDescending(w => w.M).Select(w => new Affine.Data.json.WorkoutData()
                    {
                        UId = w.Un + "_" + w.Id, Id = w.Id, S = Math.Round(Affine.Utils.UnitsUtil.systemDefaultToUnits(Convert.ToDouble(w.M), weight), 2), Un = w.Un, D = w.D.ToLocalTime().ToShortDateString(), Rx = (w.Rx.HasValue ? w.Rx.Value : false)
                    }).ToArray();
                }
                else
                {
                    jsonWorkoutData = workoutData.OrderByDescending(w => w.S).Select(w => new Affine.Data.json.WorkoutData()
                    {
                        UId = w.Un + "_" + w.Id, Id = w.Id, S = Math.Round(Convert.ToDouble(w.S), 2), Un = w.Un, D = w.D.ToLocalTime().ToShortDateString(), Rx = (w.Rx.HasValue ? w.Rx.Value : false)
                    }).ToArray();
                }
            }
            else
            {   // for now this will handle "running, swimming, walking, cycling"
                if (context == Utils.ConstsUtil.GraphContext.DEFAULT)
                {
                    if (workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.MANUAL_NO_MAP || workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.MANUAL_WITH_MAP)
                    {
                        context = Utils.ConstsUtil.GraphContext.EVERYONE;
                    }
                    else if (workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.NIKE_NO_MAP)
                    {
                        context = Utils.ConstsUtil.GraphContext.WATCHLIST;
                    }
                    // TODO: not sure about this one....

                    /*
                     * else if (workout.DataSrc == (short)Utils.WorkoutUtil.DataSrc.MANUAL_WITH_MAP)
                     * {   // TODO: ?? this is a special case that we want to compare all the times of people that have logged a run for the route.
                     * long mapRouteKey = entities.UserStreamSet.OfType<Workout>().Where(w => w.Id == workout.Id).Select(w => w.WorkoutExtendeds.FirstOrDefault().MapRoute.Id).FirstOrDefault();
                     * IQueryable<Workout> workoutQuery = entities.WorkoutExtendeds.Include("UserStream").Where(we => we.MapRoute != null && we.MapRoute.Id == mapRouteKey).Select(we => we.UserStream).OfType<Workout>().OrderBy(w => w.Duration).Take(5000);
                     * workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here.
                     * Workout[] data = workoutQuery.ToArray();
                     * var wd = data.OrderByDescending(w => w.Duration).Select(w => new
                     * {
                     *  UId = w.UserSetting.UserName + "_" + w.Id,
                     *  Id = w.Id,
                     *  S = w.Duration,
                     *  Un = w.UserSetting.UserName,
                     *  D = w.Date.ToLocalTime().ToShortDateString()
                     * }).ToArray();
                     * var ret = new { WOD = new { }, WorkoutData = wd, Workout = workoutJson, Context = (int)context };
                     * hiddenWorkoutData.Value = serializer.Serialize(ret);
                     * }*/
                    else
                    {
                        context = Utils.ConstsUtil.GraphContext.ME;
                    }
                }

                if (context == Utils.ConstsUtil.GraphContext.EVERYONE)
                {   // we want to compare achievments...
                    IQueryable <Workout> workoutQuery = entities.Achievements.Include("UserStream").Include("UserStream.UserSetting").Where(a =>
                                                                                                                                            a.AchievementType.WorkoutType.Id == workout.WorkoutTypeKey &&
                                                                                                                                            workout.Distance >= a.AchievementType.DistanceRangeA &&
                                                                                                                                            workout.Distance < a.AchievementType.DistanceRangeB).Take(5000).Select(a => a.UserStream).OfType <Workout>().AsQueryable();
                    workoutQuery = workoutQuery.Union(entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workout.Id));
                    workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here.
                    Workout[] data = workoutQuery.ToArray();
                    jsonWorkoutData = data.OrderByDescending(w => w.Duration).Select(w => new Affine.Data.json.WorkoutData()
                    {
                        UId = w.UserSetting.UserName + "_" + w.Id,
                        Id  = w.Id,
                        S   = w.Duration.Value,
                        Un  = w.UserSetting.UserName,
                        D   = w.Date.ToLocalTime().ToShortDateString()
                    }).ToArray();
                }
                else if (context == Utils.ConstsUtil.GraphContext.WATCHLIST || context == Utils.ConstsUtil.GraphContext.FRIENDS)
                {
                    IQueryable <Workout> workoutQuery = entities.Achievements.Include("UserStream").Include("UserStream.UserSetting").Where(a =>
                                                                                                                                            a.AchievementType.WorkoutType.Id == workout.WorkoutTypeKey &&
                                                                                                                                            workout.Distance >= a.AchievementType.DistanceRangeA &&
                                                                                                                                            workout.Distance < a.AchievementType.DistanceRangeB).
                                                        Where(LinqUtils.BuildContainsExpression <Achievement, long>(a => a.UserSetting.Id, friendIds)).Take(5000).Select(a => a.UserStream).OfType <Workout>().AsQueryable();
                    workoutQuery = workoutQuery.Union(entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workout.Id));
                    workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here.
                    Workout[] data = workoutQuery.ToArray();
                    jsonWorkoutData = data.OrderByDescending(w => w.Duration).Select(w => new Affine.Data.json.WorkoutData()
                    {
                        UId = w.UserSetting.UserName + "_" + w.Id,
                        Id  = w.Id,
                        S   = w.Duration.Value,
                        Un  = w.UserSetting.UserName,
                        D   = w.Date.ToLocalTime().ToShortDateString()
                    }).ToArray();
                }
                else if (context == Utils.ConstsUtil.GraphContext.ME)   // this is just you for the ranges.. since no map data
                {
                    IQueryable <Workout> workoutQuery = entities.Achievements.Include("UserStream").Include("UserStream.UserSetting").Where(a => a.UserSetting.Id == ProfileSettings.Id &&
                                                                                                                                            a.AchievementType.WorkoutType.Id == workout.WorkoutTypeKey &&
                                                                                                                                            workout.Distance >= a.AchievementType.DistanceRangeA &&
                                                                                                                                            workout.Distance < a.AchievementType.DistanceRangeB).
                                                        Take(5000).Select(a => a.UserStream).OfType <Workout>().AsQueryable();
                    workoutQuery = workoutQuery.Union(entities.UserStreamSet.OfType <Workout>().Where(w => w.Id == workout.Id));
                    workoutQuery.Select(w => w.UserSetting).ToArray(); // hydrate.. not working above so do it here.
                    Workout[] data = workoutQuery.ToArray();
                    jsonWorkoutData = data.OrderByDescending(w => w.Duration).Select(w => new Affine.Data.json.WorkoutData()
                    {
                        UId = w.UserSetting.UserName + "_" + w.Id,
                        Id  = w.Id,
                        S   = w.Duration.Value,
                        Un  = w.UserSetting.UserName,
                        D   = w.Date.ToLocalTime().ToShortDateString()
                    }).ToArray();
                }
            }
            var retWorkout = new { WOD = wod, WorkoutData = jsonWorkoutData, Workout = jsonWorkout, Context = (int)context };

            hiddenWorkoutData.Value = serializer.Serialize(retWorkout);
        }
Example #6
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "application/json";
        if (!string.IsNullOrWhiteSpace(Request.Form["u"]))
        {
            aqufitEntities entities = new aqufitEntities();
            long           uid      = Convert.ToInt64(Request.Form["u"]);
            Guid           token    = Guid.Parse(Request.Form["t"]);
            User           user     = entities.UserSettings.OfType <User>().FirstOrDefault(u => u.Id == uid && u.Guid == token);
            string         search   = Request["s"] != null?Convert.ToString(Request["s"]) : "";

            if (!string.IsNullOrWhiteSpace(search))
            {
                IQueryable <Workout> wodsToDisplay = entities.UserStreamSet.OfType <Workout>().Include("WOD").Where(w => w.UserSetting.Id == user.Id && w.Title.StartsWith(search));
                wodsToDisplay.Take(25);
                Workout[]         timedWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.TIMED).OrderBy(w => w.Duration).ToArray();
                IList <NameValue> cfTotals  = timedWods.Select(w => new NameValue()
                {
                    Name = w.Title, Value = Affine.Utils.UnitsUtil.durationToTimeString(Convert.ToInt64(w.Duration)), Date = w.Date.ToShortDateString(), Notes = "" + w.Description
                }).ToList();
                // Now all the scored ones...
                Workout[] scoredWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.SCORE || w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.AMRAP).ToArray();
                cfTotals = cfTotals.Concat(scoredWods.Select(w => new NameValue()
                {
                    Name = w.Title, Value = Convert.ToString(w.Score), Date = w.Date.ToShortDateString(), Notes = "" + w.Description
                }).ToList()).ToList();
                Workout[] maxWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.MAX_WEIGHT).ToArray();
                Affine.Utils.UnitsUtil.MeasureUnit WeightUnits = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS;
                cfTotals = cfTotals.Concat(maxWods.Select(w => new NameValue()
                {
                    Name = w.Title, Value = Affine.Utils.UnitsUtil.systemDefaultToUnits(w.Max.Value, WeightUnits) + " " + Affine.Utils.UnitsUtil.unitToStringName(WeightUnits), Date = w.Date.ToShortDateString(), Notes = "" + w.Description
                }).ToList()).ToList();
                Response.Write(serializer.Serialize(cfTotals.OrderBy(t => t.Name).ToArray()));
            }
            else
            {
                IQueryable <Workout> crossfitWorkouts = entities.UserStreamSet.OfType <Workout>().Include("WOD").Where(w => w.UserSetting.Id == user.Id && w.IsBest == true);
                int numDistinct = crossfitWorkouts.Select(w => w.WOD).Distinct().Count();
                IQueryable <Workout> wodsToDisplay = null;
                wodsToDisplay = crossfitWorkouts.OrderByDescending(w => w.Id);
                // We need to split up into WOD types now...
                Workout[]         timedWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.TIMED).OrderBy(w => w.Duration).ToArray();
                IList <NameValue> cfTotals  = timedWods.Select(w => new NameValue()
                {
                    Name = w.Title, Value = Affine.Utils.UnitsUtil.durationToTimeString(Convert.ToInt64(w.Duration)), Date = w.Date.ToShortDateString(), Notes = "" + w.Description
                }).ToList();
                // Now all the scored ones...
                Workout[] scoredWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.SCORE || w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.AMRAP).ToArray();
                cfTotals = cfTotals.Concat(scoredWods.Select(w => new NameValue()
                {
                    Name = w.Title, Value = Convert.ToString(w.Score), Date = w.Date.ToShortDateString(), Notes = "" + w.Description
                }).ToList()).ToList();
                Workout[] maxWods = wodsToDisplay.Where(w => w.WOD.WODType.Id == (int)Affine.Utils.WorkoutUtil.WodType.MAX_WEIGHT).ToArray();
                Affine.Utils.UnitsUtil.MeasureUnit WeightUnits = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS;
                cfTotals = cfTotals.Concat(maxWods.Select(w => new NameValue()
                {
                    Name = w.Title, Value = Affine.Utils.UnitsUtil.systemDefaultToUnits(w.Max.Value, WeightUnits) + " " + Affine.Utils.UnitsUtil.unitToStringName(WeightUnits), Date = w.Date.ToShortDateString(), Notes = "" + w.Description
                }).ToList()).ToList();
                Response.Write(serializer.Serialize(cfTotals.OrderBy(t => t.Name).ToArray()));
            }
            Response.Flush();
            Response.End();
        }
    }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Page_Load runs when the control is loaded
        /// </summary>
        /// <remarks>
        /// </remarks>
        /// <history>
        /// </history>
        /// -----------------------------------------------------------------------------
        protected void Page_Load(System.Object sender, System.EventArgs e)
        {
            try
            {
                base.Page_Load(sender, e);
                this.Permissions = AqufitPermission.PUBLIC;
                this.GroupPermissions = Utils.ConstsUtil.Relationships.NONE;
                this.Following = false;
                aqufitEntities entities = new aqufitEntities();
                if (this.UserId > 0)
                {
                    this.UserSettings = entities.UserSettings.OfType<User>().Include("UserSettingsExtendeds").Include("SiteSettings").FirstOrDefault(s => s.UserKey == this.UserId && s.PortalKey == this.PortalId);
                }
                this.GroupSettings = null;
                if (HttpContext.Current.Items["g"] != null || Request["g"] != null)
                {
                    string groupname = HttpContext.Current.Items["g"] != null ? Convert.ToString(HttpContext.Current.Items["g"]) : Convert.ToString(Request["g"]);
                    this.GroupSettings = entities.UserSettings.OfType<Group>().Include("GroupType").Include("UserSettingsExtendeds").FirstOrDefault(g => g.PortalKey == this.PortalId && g.UserName == groupname);
                }
              //      throw new Exception("UserName: "******"u"] != null || Request["u"] != null)
                {   // there was a user passed in the url.
                    string uname = HttpContext.Current.Items["u"] != null ? Convert.ToString(HttpContext.Current.Items["u"]) : Request["u"];

                    // TODO: cache the user settings
                    this.ProfileSettings = entities.UserSettings.Include("Metrics").Include("UserSettingsExtendeds").Include("SiteSettings").FirstOrDefault(us => us.UserName == uname && us.PortalKey == this.PortalId);
                    //     this.ProfileSettings.Guid = Guid.NewGuid();
               //     entities.SaveChanges();
                    if (this.ProfileSettings == null)
                    {   // TODO: error handeling
                        throw new Exception("No User Profile found for: " + uname);
                        // DNN 5.0.3
                        //return;
                    }
                    if (this.ProfileSettings is Group)
                    {
                        this.GroupSettings = this.ProfileSettings as Group;
                    }
                }
                else
                {   // there was no user name on the url.  So if there is a user logged in.  Lets defualt the page to them
                    if (this.UserId > 0)
                    {

                        /* CA - this is old.. i am thinking that we just want to set UserSettings...
                        this.ProfileSettings = entities.UserSettings.OfType<User>().Include("Metrics").Include("UserSettingsExtendeds").FirstOrDefault(us => us.UserKey == this.UserId && us.PortalKey == this.PortalId);
                        if (this.ProfileSettings == null)
                        {   // TODO: error handeling
                            throw new Exception("No User Profile found for uid: " + this.UserId);
                        }
                         */
                        this.UserSettings = entities.UserSettings.OfType<User>().Include("Metrics").Include("UserSettingsExtendeds").Include("SiteSettings").FirstOrDefault(us => us.UserKey == this.UserId && us.PortalKey == this.PortalId);
                        if (this.UserSettings == null)
                        {   // TODO: error handeling
                            throw new Exception("No User Profile found for uid: " + this.UserId);
                        }
                    }
                    else if (this.GroupSettings != null)
                    {
                        this.ProfileSettings = ((Affine.Data.UserSettings)this.GroupSettings);
                    }
                    else
                    {   // TODO: This person is not logged in.. send them a 404
                        //throw new Exception("404 Error needed here");
                        //Response.Redirect(ResolveUrl("~/"), true);

                        // This is a "public" connection to the page. (that might not have a URL routemapping)
                        return;
                    }
                }
                if (this.ProfileSettings != null && this.ProfileSettings is Group)
                {
                    this.GroupSettings = (Group)this.ProfileSettings;
                }
                // PERMISSIONS: So now we have a profileSettings object.  It is time to figure out what kind of permissions we have for the page
                // Permissions work with the following structure:
                //  1) You are the owner (full permissions)
                //  2) You are a friend (friend permissions)
                //  3) Public (public permissions)
                if (this.ProfileSettings != null && this.ProfileSettings.UserKey == this.UserId && this.ProfileSettings.PortalKey == this.PortalId)
                {   // PERMISSIONS: Set owner permissions
                    this.Permissions = AqufitPermission.OWNER;
                }
                else
                {
                    // TODO: this is expensive to query on EVERY postback
                    UserFriends areFriends = null;
                    UserFriends areFollowing = null;
                    if (this.UserSettings != null && this.ProfileSettings != null)
                    {
                        areFriends = entities.UserFriends.FirstOrDefault(f => ((f.SrcUserSettingKey == this.UserSettings.Id && f.DestUserSettingKey == this.ProfileSettings.Id) || (f.SrcUserSettingKey == this.ProfileSettings.Id && f.DestUserSettingKey == this.UserSettings.Id)) && f.Relationship == (int)Affine.Utils.ConstsUtil.Relationships.FRIEND );
                        areFollowing = entities.UserFriends.FirstOrDefault(f => ((f.SrcUserSettingKey == this.UserSettings.Id && f.DestUserSettingKey == this.ProfileSettings.Id) ) && f.Relationship == (int)Affine.Utils.ConstsUtil.Relationships.FOLLOW);
                    }
                    if (areFriends != null )
                    {   // PERMISSIONS: set friend permissions
                        this.Permissions = AqufitPermission.FRIEND;
                    }
                    else if (areFollowing != null)
                    {
                        this.Following = true;
                    }
                    else
                    {
                        if (this.UserId > 0)
                        {
                            this.Permissions = AqufitPermission.USER;
                        }
                        else
                        {
                            // PERMISSIONS: Set public permissions
                            this.Permissions = AqufitPermission.PUBLIC;
                        }
                        // PERMISSIONS: We can check if there is a pending friend request for this person
                        // TODO: check pending requests.
                    }
                }
                if (this.GroupSettings != null)
                {
                    // First we need to find out the relationship that the user has with the group
                    if (UserSettings != null)
                    {
                        UserFriends relationship = entities.UserFriends.FirstOrDefault(f => (f.SrcUserSettingKey == this.GroupSettings.Id && f.DestUserSettingKey == UserSettings.Id || f.DestUserSettingKey == this.GroupSettings.Id && f.SrcUserSettingKey == UserSettings.Id));
                        if (relationship == null)
                        {   // This means that the user is NOT a member of the group TODO: check permissions that group is "Open"
                            //base.GroupSettings.GroupType.TypeName == "

                        }
                        else
                        {
                            GroupPermissions = Utils.ConstsUtil.IntToRelationship(relationship.Relationship);
                        }
                    }
                    else
                    {   // you are not logged in .. so just show basic details
                        GroupPermissions = Utils.ConstsUtil.Relationships.NONE;
                    }
                }

                this.DistanceUnits = UserSettings != null && UserSettings.DistanceUnits != null ? Affine.Utils.UnitsUtil.ToUnit(UserSettings.DistanceUnits.Value) : Utils.UnitsUtil.MeasureUnit.UNIT_MILES;
                this.WeightUnits = UserSettings != null && UserSettings.WeightUnits != null ? Affine.Utils.UnitsUtil.ToUnit(UserSettings.WeightUnits.Value) : Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS;
                // END - setup for permissions
                ScriptManager.RegisterStartupScript(this, Page.GetType(), "ProfileVars", GetProfileJs(), true);
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Example #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack && !Page.IsCallback)
        {
            // imgNikePlus.ImageUrl = ResolveUrl("~/DesktopModules/ATI_Fitness/resources/images/iSyncNikePlus.png");
            // set date control to today
            atiRadDatePicker.SelectedDate = DateTime.Now;

            // setup the units control
            atiDistanceUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES);
            atiDistanceUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KM);
            atiDistanceUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_M);
            atiDistanceUnits.Selected = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES;

            atiMaxWeightUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS);
            atiMaxWeightUnits.UnitList.Add(Affine.Utils.UnitsUtil.MeasureUnit.UNIT_KG);
            atiMaxWeightUnits.Selected = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_LBS;

            // Setup the units to the users last used units
            if (this.PortalSettings.UserInfo.UserID != -1)
            {
                aqufitEntities aqufitEntities = new aqufitEntities();
                UserSettings   aqufitSettings = aqufitEntities.UserSettings.FirstOrDefault <UserSettings>(us => us.UserKey == this.PortalSettings.UserInfo.UserID && us.PortalKey == this.PortalSettings.PortalId);
                if (aqufitSettings != null) // TODO: this really should never happen
                {
                    if (aqufitSettings.DistanceUnits != null)
                    {
                        atiDistanceUnits.Selected = (Affine.Utils.UnitsUtil.MeasureUnit)Enum.ToObject(typeof(Affine.Utils.UnitsUtil.MeasureUnit), aqufitSettings.DistanceUnits);
                    }
                    if (aqufitSettings.WeightUnits != null)
                    {
                        atiMaxWeightUnits.Selected = (Affine.Utils.UnitsUtil.MeasureUnit)Enum.ToObject(typeof(Affine.Utils.UnitsUtil.MeasureUnit), aqufitSettings.WeightUnits);
                    }
                }
            }

            if (this.SetControlToWOD != null)
            {
                atiWorkoutTypes.SelectedType = Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT;
                Aqufit.Helpers.WodItem wi = new Aqufit.Helpers.WodItem()
                {
                    Id = this.SetControlToWOD.Id, Type = (short)this.SetControlToWOD.WODType.Id
                };
                string          json = _serializer.Serialize(wi);
                RadComboBoxItem item = new RadComboBoxItem(this.SetControlToWOD.Name, json);
                item.Selected = true;
                atiRadComboBoxCrossfitWorkouts.Items.Add(item);
                ScriptManager.RegisterStartupScript(this, Page.GetType(), "InitialWOD", "Aqufit.addLoadEvent(function(){ Aqufit.Page." + this.ID + ".configureFormView(" + (int)Affine.Utils.WorkoutUtil.WorkoutType.CROSSFIT + "); Aqufit.Page.Controls.atiWodSelector.SetupWOD('" + json + "') });", true);
            }
            else if (this.SetControlToMapRoute != null)
            {
                Affine.Utils.UnitsUtil.MeasureUnit units = Affine.Utils.UnitsUtil.MeasureUnit.UNIT_MILES;
                double dist = Affine.Utils.UnitsUtil.systemDefaultToUnits(this.SetControlToMapRoute.RouteDistance, units);
                dist = Math.Round(dist, 2);
                Aqufit.Helpers.RouteItem ri = new Aqufit.Helpers.RouteItem()
                {
                    Dist = this.SetControlToMapRoute.RouteDistance, Id = this.SetControlToMapRoute.Id
                };
                string          json = _serializer.Serialize(ri);
                RadComboBoxItem item = new RadComboBoxItem(Affine.Utils.Web.WebUtils.FromWebSafeString(this.SetControlToMapRoute.Name) + " (" + dist + " " + Affine.Utils.UnitsUtil.unitToStringName(units) + ")", json);
                item.Selected = true;
                item.ImageUrl = Affine.Utils.ImageUtil.GetGoogleMapsStaticImage(this.SetControlToMapRoute, 200, 150);
                atiRouteSelector.Items.Add(item);
            }
        }
    }