private void UpdateAdapter(EventJson obj)
        {
            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                this.EventPublic = obj;
                IsLoading = false;
            });

        }
        public JsonResult CalendarEvents(string lId)
        {
            var now = DateTime.UtcNow;

            EventsJson leagues = new EventsJson();
            try
            {
                Guid leagueId = new Guid(lId);
                var events = SiteCache.GetCalendarEvents(leagueId, PULL_COUNT, now);

                leagues.Count = events.Events.Count;
                foreach (var e in events.Events)
                {
                    EventJson j = new EventJson();
                    j.Address = e.Address;
                    j.LeagueId = lId;
                    j.CalendarItemId = e.CalendarItemId.ToString().Replace("-", "");
                    j.EndDate = e.EndDate;
                    j.Name = e.Name;
                    j.NameUrl = e.NameUrl;
                    j.StartDate = e.StartDate;
                    j.Description = e.Notes;
                    j.EventUrl = e.Link;
                    j.TicketUrl = e.TicketUrl;
                    j.RDNUrl = ServerConfig.WEBSITE_DEFAULT_LOCATION + "/roller-derby-event/" + RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(e.Name) + "/" + j.CalendarItemId;
                    if (e.Location != null)
                        j.Location = e.Location.LocationName;
                    j.LeagueId = e.OrganizersId.ToString().Replace("-", "");
                    j.LogoUrl = e.ImageUrl;
                    j.OrganizersId = e.OrganizersId.ToString().Replace("-", "");
                    j.OrganizersName = e.OrganizersName;
                    leagues.Events.Add(j);

                }

                return Json(leagues, JsonRequestBehavior.AllowGet);

            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return Json(leagues, JsonRequestBehavior.AllowGet);
        }
 public EventViewController(EventJson skater)
 {
     _event = skater;
 }
        protected override void OnCreate(Bundle bundle)
        {
            try
            {
                RequestWindowFeature(WindowFeatures.NoTitle);

                base.OnCreate(bundle);
                LoggerMobile.Instance.logMessage("Opening EventActivity", LoggerEnum.message);
                var eventString = Intent.GetStringExtra("event");
                ev = Json.DeserializeObject<EventJson>(eventString);

                SetContentView(Resource.Layout.PublicEvent);
                LegacyBar = FindViewById<LegacyBar.Library.Bar.LegacyBar>(Resource.Id.actionbar);
                LegacyBar.SeparatorColor = Color.Purple;
                LegacyBar.SetHomeAction(new BackAction(this, null, Resource.Drawable.calendar, this));
                LegacyBar.Title = ev.Name;
                // Get our button from the layout resource,
                // and attach an event to it

                if (!String.IsNullOrEmpty(ev.TicketUrl))
                {
                    LegacyBarAction azAction = new WebBrowserAction(this, null, Resource.Drawable.ic_action_data_ticket_icon, ev.TicketUrl);
                    LegacyBar.AddAction(azAction);
                }
                if (!String.IsNullOrEmpty(ev.RDNUrl))
                {
                    LegacyBarAction azAction = new WebBrowserAction(this, null, Resource.Drawable.icon, ev.RDNUrl);
                    LegacyBar.AddAction(azAction);
                }
                if (!String.IsNullOrEmpty(ev.EventUrl))
                {
                    LegacyBarAction azAction = new WebBrowserAction(this, null, Resource.Drawable.action_about, ev.EventUrl);
                    LegacyBar.AddAction(azAction);
                }

                TextView eventName = FindViewById<TextView>(Resource.Id.eventName);
                eventName.Text = ev.Name;

                eventLocation = FindViewById<TextView>(Resource.Id.eventLocation);
                eventLocation.Text = ev.Location;
                eventLocation.PaintFlags = PaintFlags.UnderlineText;
                eventLocation.Clickable = true;
                eventLocation.Click += eventLocation_Click;
                eventAddress = FindViewById<TextView>(Resource.Id.eventAddress);
                eventAddress.Text = "@ " + ev.Address;
                eventAddress.PaintFlags = PaintFlags.UnderlineText;
                eventAddress.Clickable = true;
                eventAddress.Click += eventLocation_Click;

                eventDateTime = FindViewById<TextView>(Resource.Id.eventDateTime);
                DateTime iKnowThisIsUtc = ev.StartDate;
                DateTime runtimeKnowsThisIsUtc = DateTime.SpecifyKind(iKnowThisIsUtc, DateTimeKind.Utc);
                DateTime startDate = runtimeKnowsThisIsUtc.ToLocalTime();

                DateTime iKnowThisIsUtcEnd = ev.EndDate;
                DateTime runtimeKnowsThisIsUtcEnd = DateTime.SpecifyKind(iKnowThisIsUtcEnd, DateTimeKind.Utc);
                DateTime endDate = runtimeKnowsThisIsUtcEnd.ToLocalTime();

                eventDateTime.Text = startDate.ToShortDateString() + " " + startDate.ToShortTimeString() + " - " + endDate.ToShortTimeString();
                eventOrganizerInfo = FindViewById<TextView>(Resource.Id.eventOrganizerInfo);
                eventOrganizerInfo.Text = ev.OrganizersName;
                eventOrganizerInfo.PaintFlags = PaintFlags.UnderlineText;

                eventOrganizerInfo.Clickable = true;
                eventOrganizerInfo.Click += eventOrganizerInfo_Click;
                eventDescription = FindViewById<TextView>(Resource.Id.eventDescription);
                if (!String.IsNullOrEmpty(ev.Description))
                    eventDescription.Text = Html.FromHtml(ev.Description).ToString();





                SetProfileImage(ev);



                m_AdView = FindViewById(Resource.Id.adView);
                if (SettingsMobile.Instance.User != null && SettingsMobile.Instance.User.IsValidSub)
                {
                }
            }
            catch (Exception exception)
            {
                ErrorHandler.Save(exception, MobileTypeEnum.Android, (Context)this);
            }
        }
        private void SetProfileImage(EventJson ev)
        {
            ImageView profileImage = FindViewById<ImageView>(Resource.Id.eventImage);
            if (!String.IsNullOrEmpty(ev.LogoUrl))
            {

                Task<bool>.Factory.StartNew(
                               () =>
                               {
                                   try
                                   {
                                       var i = Image.GetImageBitmapFromUrl(ev.LogoUrl);
                                       this.RunOnUiThread(() =>
                                       {
                                           profileImage.SetImageBitmap(i);
                                       });
                                   }
                                   catch (Exception exception)
                                   {
                                       ErrorHandler.Save(exception, MobileTypeEnum.Android, this);
                                   }
                                   return true;
                               });


            }
        }
        public JsonResult SearchEventsAllByLL(string p, string c, string lat, string lon)
        {
            var now = DateTime.UtcNow;

            EventsJson evs = new EventsJson();
            try
            {
                lat = lat.Replace(",", ".");
                lon = lon.Replace(",", ".");
                var latitude = Convert.ToDouble(lat);
                var longitude = Convert.ToDouble(lon);
                GeoCoordinate geo = new GeoCoordinate(latitude, longitude);
                var events = SiteCache.SearchCalendarEvents(now, longitude, latitude, Convert.ToInt32(p), Convert.ToInt32(c));

                evs.Count = events.Count;
                foreach (var e in events)
                {
                    EventJson j = new EventJson();
                    j.Address = e.Address;
                    j.LeagueId = e.OrganizersId.ToString().Replace("-", "");
                    j.CalendarItemId = e.CalendarItemId.ToString().Replace("-", "");
                    j.EndDate = e.EndDate;
                    j.Name = e.Name;
                    j.NameUrl = e.NameUrl;
                    j.StartDate = e.StartDate;
                    j.LogoUrl = e.ImageUrl;
                    j.OrganizersId = e.OrganizersId.ToString().Replace("-", "");
                    j.OrganizersName = e.OrganizersName;
                    j.Description = e.Notes;
                    j.EventUrl = e.Link;
                    j.TicketUrl = e.TicketUrl;
                    j.Latitude = e.Location.Contact.Addresses.FirstOrDefault().Coords.Latitude;
                    j.Longitude = e.Location.Contact.Addresses.FirstOrDefault().Coords.Longitude;
                    j.Miles = Conversion.ConvertMetersToMiles(geo.GetDistanceTo(new GeoCoordinate(j.Latitude, j.Longitude)));
                    j.RDNUrl = ServerConfig.WEBSITE_DEFAULT_LOCATION + "/roller-derby-event/" + RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(e.Name) + "/" + j.CalendarItemId;
                    if (e.Location != null)
                        j.Location = e.Location.LocationName;
                    evs.Events.Add(j);
                }

                return Json(evs, JsonRequestBehavior.AllowGet);

            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return Json(evs, JsonRequestBehavior.AllowGet);
        }