예제 #1
0
        public void CreateManyPlaces(int count)
        {
            Random r = new Random();
            ManagedSecurityContext sec = ManagedAccount.GetAdminSecurityContext(Session);

            // country
            TransitCountry t_country = new TransitCountry();

            t_country.Name = Guid.NewGuid().ToString();
            ManagedCountry country = new ManagedCountry(Session);

            country.CreateOrUpdate(t_country, sec);
            // state
            TransitState t_state = new TransitState();

            t_state.Name    = Guid.NewGuid().ToString();
            t_state.Country = t_country.Name;
            ManagedState state = new ManagedState(Session);

            state.CreateOrUpdate(t_state, sec);
            // city
            TransitCity t_city = new TransitCity();

            t_city.Name    = Guid.NewGuid().ToString();
            t_city.State   = t_state.Name;
            t_city.Country = t_country.Name;
            ManagedCity city = new ManagedCity(Session);

            city.CreateOrUpdate(t_city, sec);
            // place type
            TransitPlaceType t_placetype = new TransitPlaceType();

            t_placetype.Name = Guid.NewGuid().ToString();
            ManagedPlaceType placetype = new ManagedPlaceType(Session);

            placetype.CreateOrUpdate(t_placetype, sec);

            for (int i = 0; i < count; i++)
            {
                TransitPlace t_place = new TransitPlace();
                t_place.Name      = Guid.NewGuid().ToString();
                t_place.AccountId = sec.Account.Id;
                t_place.City      = t_city.Name;
                t_place.Country   = t_country.Name;
                t_place.State     = t_state.Name;
                t_place.Street    = string.Format("{0} {1} St.", r.Next(), Guid.NewGuid().ToString());
                t_place.Zip       = r.Next().ToString();
                t_place.Type      = t_placetype.Name;

                ManagedPlace place = new ManagedPlace(Session);
                place.CreateOrUpdate(t_place, sec);
            }
        }
예제 #2
0
    public void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SiteMapDataAttribute sitemapdata = new SiteMapDataAttribute();
            sitemapdata.Add(new SiteMapDataAttributeNode("System Preferences", Request, "SystemPreferencesManage.aspx"));
            sitemapdata.Add(new SiteMapDataAttributeNode("Cities", Request, "SystemCitiesManage.aspx"));

            DomainClass cs = SessionManager.GetDomainClass("City");
            inputName.MaxLength = cs["Name"].MaxLengthInChars;
            inputTag.MaxLength  = cs["Tag"].MaxLengthInChars;

            string defaultcountry = SessionManager.GetCachedConfiguration("SnCore.Country.Default", "United States");
            inputCountry.DataSource = SessionManager.GetCollection <TransitCountry, string>(
                defaultcountry, (ServiceQueryOptions)null, SessionManager.LocationService.GetCountriesWithDefault);
            inputCountry.DataBind();

            if (RequestId > 0)
            {
                TransitCity tc = SessionManager.LocationService.GetCityById(
                    SessionManager.Ticket, RequestId);
                inputName.Text = tc.Name;
                inputTag.Text  = tc.Tag;
                ListItemManager.TrySelect(inputCountry, tc.Country);
                inputCountry_SelectedIndexChanged(sender, e);
                ListItemManager.TrySelect(inputState, tc.State);
                sitemapdata.Add(new SiteMapDataAttributeNode(tc.Name, Request.Url));
            }
            else if (!string.IsNullOrEmpty(Request["city"]))
            {
                LocationSelectorCountryState ls = new LocationSelectorCountryState(
                    this, true, inputCountry, inputState);
                ls.SelectLocation(sender, new LocationEventArgs(Request));
                inputName.Text = Request["city"];
            }
            else
            {
                inputCountry_SelectedIndexChanged(sender, e);
                panelMerge.Visible = false;
                sitemapdata.Add(new SiteMapDataAttributeNode("New City", Request.Url));
            }

            StackSiteMap(sitemapdata);
        }

        SetDefaultButton(manageAdd);
        PageManager.SetDefaultButton(mergeLookup, panelMerge.Controls);
    }
예제 #3
0
 public void save_Click(object sender, EventArgs e)
 {
     TransitCity tc = new TransitCity();
     tc.Name = inputName.Text;
     tc.Id = RequestId;
     tc.Tag = inputTag.Text;
     tc.Country = inputCountry.SelectedValue;
     tc.State = inputState.SelectedValue;
     if (string.IsNullOrEmpty(tc.State) && inputState.Items.Count > 1)
     {
         throw new Exception("State is required.");
     }
     SessionManager.CreateOrUpdate<TransitCity>(
         tc, SessionManager.LocationService.CreateOrUpdateCity);
     Redirect("SystemCitiesManage.aspx");
 }
예제 #4
0
    public void save_Click(object sender, EventArgs e)
    {
        TransitCity tc = new TransitCity();

        tc.Name    = inputName.Text;
        tc.Id      = RequestId;
        tc.Tag     = inputTag.Text;
        tc.Country = inputCountry.SelectedValue;
        tc.State   = inputState.SelectedValue;
        if (string.IsNullOrEmpty(tc.State) && inputState.Items.Count > 1)
        {
            throw new Exception("State is required.");
        }
        SessionManager.CreateOrUpdate <TransitCity>(
            tc, SessionManager.LocationService.CreateOrUpdateCity);
        Redirect("SystemCitiesManage.aspx");
    }
예제 #5
0
        public void CreateManyPlaces(int count)
        {
            Random r = new Random();
            ManagedSecurityContext sec = ManagedAccount.GetAdminSecurityContext(Session);

            // country
            TransitCountry t_country = new TransitCountry();
            t_country.Name = Guid.NewGuid().ToString();
            ManagedCountry country = new ManagedCountry(Session);
            country.CreateOrUpdate(t_country, sec);
            // state
            TransitState t_state = new TransitState();
            t_state.Name = Guid.NewGuid().ToString();
            t_state.Country = t_country.Name;
            ManagedState state = new ManagedState(Session);
            state.CreateOrUpdate(t_state, sec);
            // city
            TransitCity t_city = new TransitCity();
            t_city.Name = Guid.NewGuid().ToString();
            t_city.State = t_state.Name;
            t_city.Country = t_country.Name;
            ManagedCity city = new ManagedCity(Session);
            city.CreateOrUpdate(t_city, sec);
            // place type
            TransitPlaceType t_placetype = new TransitPlaceType();
            t_placetype.Name = Guid.NewGuid().ToString();
            ManagedPlaceType placetype = new ManagedPlaceType(Session);
            placetype.CreateOrUpdate(t_placetype, sec);

            for (int i = 0; i < count; i++)
            {
                TransitPlace t_place = new TransitPlace();
                t_place.Name = Guid.NewGuid().ToString();
                t_place.AccountId = sec.Account.Id;
                t_place.City = t_city.Name;
                t_place.Country = t_country.Name;
                t_place.State = t_state.Name;
                t_place.Street = string.Format("{0} {1} St.", r.Next(), Guid.NewGuid().ToString());
                t_place.Zip = r.Next().ToString();
                t_place.Type = t_placetype.Name;

                ManagedPlace place = new ManagedPlace(Session);
                place.CreateOrUpdate(t_place, sec);
            }
        }
예제 #6
0
 public void ChangeCityWithAccountDefault(object sender, CityLocationEventArgs e)
 {
     if (!string.IsNullOrEmpty(e.City))
     {
         TransitCity t_city = mPage.SessionManager.LocationService.GetCityByTag(
             mPage.SessionManager.Ticket, e.City);
         if (t_city != null)
         {
             SelectLocation(sender, new LocationEventArgs(t_city));
         }
         else
         {
             mCity.Text = e.City;
         }
     }
     else
     {
         SelectLocation(sender, new LocationEventArgs(mPage.SessionManager.Account));
     }
 }
예제 #7
0
    public void gridManage_ItemCommand(object source, DataGridCommandEventArgs e)
    {
        switch (e.Item.ItemType)
        {
        case ListItemType.AlternatingItem:
        case ListItemType.Item:
        case ListItemType.SelectedItem:
        case ListItemType.EditItem:

            int id = int.Parse(e.Item.Cells[(int)Cells.id].Text);
            switch (e.CommandName)
            {
            case "Delete":

                TransitCity t_city = SessionManager.LocationService.GetCityById(
                    SessionManager.Ticket, id);

                // deleting a city may need to orphan places
                TransitPlaceQueryOptions t_placeoptions = new TransitPlaceQueryOptions();
                t_placeoptions.City         = t_city.Name;
                t_placeoptions.Country      = t_city.Country;
                t_placeoptions.State        = t_city.State;
                t_placeoptions.PicturesOnly = false;
                int count = SessionManager.PlaceService.GetPlacesCount(SessionManager.Ticket, t_placeoptions);
                if (count > 0)
                {
                    throw new Exception(string.Format("You must orphan {0} place(s) to delete this city.",
                                                      count));
                }

                SessionManager.Delete <TransitCity>(id, SessionManager.LocationService.DeleteCity);
                ReportInfo("City deleted.");
                gridManage.CurrentPageIndex = 0;
                gridManage_OnGetDataSource(source, e);
                gridManage.DataBind();
                break;
            }
            break;
        }
    }
예제 #8
0
        public void CreatePlace()
        {
            ManagedPlaceType type = new ManagedPlaceType(Session);

            ManagedCountry c = new ManagedCountry(Session);
            ManagedState   t = new ManagedState(Session);
            ManagedCity    s = new ManagedCity(Session);
            ManagedAccount a = new ManagedAccount(Session);

            try
            {
                a.Create("Test User", "testpassword", "*****@*****.**", DateTime.UtcNow, AdminSecurityContext);
                a.VerifyAllEmails();
                a.AddDefaultPicture();

                TransitCountry tc = new TransitCountry();
                tc.Name = GetNewString();

                TransitState tt = new TransitState();
                tt.Name    = GetNewString();
                tt.Country = tc.Name;

                TransitCity ts = new TransitCity();
                ts.Name    = GetNewString();
                ts.Country = tc.Name;
                ts.State   = tt.Name;

                c.CreateOrUpdate(tc, AdminSecurityContext);
                t.CreateOrUpdate(tt, AdminSecurityContext);
                s.CreateOrUpdate(ts, AdminSecurityContext);

                TransitPlaceType t_type = new TransitPlaceType();
                t_type.Name = GetNewString();
                type.CreateOrUpdate(t_type, AdminSecurityContext);

                TransitPlace t_place = new TransitPlace();
                t_place.Name      = GetNewString();
                t_place.Type      = t_type.Name;
                t_place.City      = ts.Name;
                t_place.Country   = tc.Name;
                t_place.State     = tt.Name;
                t_place.AccountId = a.Id;

                ManagedPlace m_place = new ManagedPlace(Session);
                m_place.CreateOrUpdate(t_place, a.GetSecurityContext());
            }
            finally
            {
                try
                {
                    a.Delete(AdminSecurityContext);
                    type.Delete(AdminSecurityContext);
                    s.Delete(AdminSecurityContext);
                    t.Delete(AdminSecurityContext);
                    c.Delete(AdminSecurityContext);
                }
                catch
                {
                }
            }
        }
예제 #9
0
 public int CreateOrUpdateCity(string ticket, TransitCity city)
 {
     return(WebServiceImpl <TransitCity, ManagedCity, City> .CreateOrUpdate(
                ticket, city));
 }
예제 #10
0
 public LocationEventArgs(TransitCity city)
     : this(city.Country, city.State, city.Name, string.Empty)
 {
 }
예제 #11
0
    public string Handle(string tag, string tagname, string tagvalue)
    {
        switch (tagname)
        {
        case "user":
        case "account":
            return(Handle <TransitAccount>(tagname, tagvalue, AccountService.GetAccountById,
                                           delegate(TransitAccount t_account)
            {
                return string.Format("<a href=\"{0}/AccountView.aspx?id={1}\">{2}</a>",
                                     WebsiteUrl, t_account.Id, Renderer.Render(t_account.Name));
            }));

        case "place":
            return(Handle <TransitPlace>(tagname, tagvalue, PlaceService.GetPlaceById,
                                         delegate(TransitPlace t_place)
            {
                return string.Format("<a href=\"{0}/PlaceView.aspx?id={1}\">{2}</a>",
                                     WebsiteUrl, t_place.Id, Renderer.Render(t_place.Name));
            }));

        case "group":
            return(Handle <TransitAccountGroup>(tagname, tagvalue, GroupService.GetAccountGroupById,
                                                delegate(TransitAccountGroup t_group)
            {
                return string.Format("<a href=\"{0}/AccountGroupView.aspx?id={1}\">{2}</a>",
                                     WebsiteUrl, t_group.Id, Renderer.Render(t_group.Name));
            }));

        case "blog":
            return(Handle <TransitAccountBlog>(tagname, tagvalue, BlogService.GetAccountBlogById,
                                               delegate(TransitAccountBlog t_blog)
            {
                return string.Format("<a href=\"{0}/AccountBlogView.aspx?id={1}\">{2}</a>",
                                     WebsiteUrl, t_blog.Id, Renderer.Render(t_blog.Name));
            }));

        case "event":
            return(Handle <TransitAccountEvent, long>(tagname, tagvalue, 0, EventService.GetAccountEventById,
                                                      delegate(TransitAccountEvent t_event)
            {
                return string.Format("<a href=\"{0}/AccountEventView.aspx?id={1}\">{2}</a>",
                                     WebsiteUrl, t_event.Id, Renderer.Render(t_event.Name));
            }));

        case "feed":
            return(Handle <TransitAccountFeed>(tagname, tagvalue, SyndicationService.GetAccountFeedById,
                                               delegate(TransitAccountFeed t_feed)
            {
                return string.Format("<a href=\"{0}/AccountFeedView.aspx?id={1}\">{2}</a>",
                                     WebsiteUrl, t_feed.Id, Renderer.Render(t_feed.Name));
            }));

        case "discussion":
            return(Handle <TransitDiscussion>(tagname, tagvalue, DiscussionService.GetDiscussionById,
                                              delegate(TransitDiscussion t_discussion)
            {
                string name = string.IsNullOrEmpty(t_discussion.ParentObjectName) ? t_discussion.Name : t_discussion.ParentObjectName;
                string uri = string.IsNullOrEmpty(t_discussion.ParentObjectUri)
                            ? string.Format("DiscussionView.aspx?id={0}", t_discussion.Id)
                            : t_discussion.ParentObjectUri;
                return string.Format("<a href=\"{0}/{1}\">{2}</a>",
                                     WebsiteUrl, uri, Renderer.Render(name));
            }));

        default:
            TransitPlace p = GetInstance <TransitPlace, string, string>(
                tagname, tagvalue, PlaceService.FindPlace);
            if (p == null)
            {
                // resole tag to a city name

                TransitCity t_city = GetInstance <TransitCity, string>(
                    tagname, LocationService.GetCityByTag);

                if (t_city != null)
                {
                    return(string.Format("<a href=\"{5}/PlaceView.aspx?city={0}&state={1}&country={2}&name={3}\">{4}</a>",
                                         Renderer.UrlEncode(t_city.Name), Renderer.UrlEncode(t_city.State), Renderer.UrlEncode(t_city.Country),
                                         Renderer.UrlEncode(tagvalue), Renderer.Render(tagvalue), WebsiteUrl));
                }
                else
                {
                    return(string.Format("<a href=\"{3}/PlaceView.aspx?city={0}&name={1}\">{2}</a>",
                                         Renderer.UrlEncode(tagname), Renderer.UrlEncode(tagvalue), Renderer.Render(tagvalue), WebsiteUrl));
                }
            }
            else
            {
                return(string.Format("<a href=\"{2}/PlaceView.aspx?id={0}\">{1}</a>",
                                     p.Id, Renderer.Render(p.Name), WebsiteUrl));
            }
        }
    }
예제 #12
0
    public void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (RequestId > 0)
            {
                TransitPlace   place   = Place;
                TransitAccount account = PlaceAccount;

                if (place == null)
                {
                    ReportWarning("Place does not exist.");
                    panelPlace.Visible = false;
                    return;
                }

                SiteMapDataAttribute sitemapdata = new SiteMapDataAttribute();
                sitemapdata.Add(new SiteMapDataAttributeNode("Places", Request, "PlacesView.aspx"));
                sitemapdata.AddRange(SiteMapDataAttribute.GetLocationAttributeNodes(Request, "PlacesView.aspx", place.Country, place.State, place.City, place.Neighborhood, place.Type));
                sitemapdata.Add(new SiteMapDataAttributeNode(place.Name, Request.Url));
                StackSiteMap(sitemapdata);

                groups.PlaceId = RequestId;

                Title = Renderer.Render(string.Format("{0}, {1}", place.Name, place.City));

                MetaDescription.Content = string.Format("Get photos, information and reviews on {0} and other places in {1} on {2}.",
                                                        Renderer.Render(place.Name),
                                                        Renderer.Render(place.City),
                                                        Renderer.Render(SessionManager.GetCachedConfiguration("SnCore.Title", "SnCore")));

                placeType.NavigateUrl =
                    string.Format("PlacesView.aspx?city={0}&state={1}&country={2}&neighborhood={3}&type={4}",
                                  Renderer.UrlEncode(place.City),
                                  Renderer.UrlEncode(place.State),
                                  Renderer.UrlEncode(place.Country),
                                  Renderer.UrlEncode(place.Neighborhood),
                                  Renderer.UrlEncode(place.Type));

                placeNeighborhood.NavigateUrl =
                    string.Format("PlacesView.aspx?city={0}&state={1}&country={2}&neighborhood={3}",
                                  Renderer.UrlEncode(place.City),
                                  Renderer.UrlEncode(place.State),
                                  Renderer.UrlEncode(place.Country),
                                  Renderer.UrlEncode(place.Neighborhood));

                placeCity.NavigateUrl =
                    string.Format("PlacesView.aspx?city={0}&state={1}&country={2}",
                                  Renderer.UrlEncode(place.City),
                                  Renderer.UrlEncode(place.State),
                                  Renderer.UrlEncode(place.Country));

                placeState.NavigateUrl =
                    string.Format("PlacesView.aspx?state={0}&country={1}",
                                  Renderer.UrlEncode(place.State),
                                  Renderer.UrlEncode(place.Country));

                placeCountry.NavigateUrl =
                    string.Format("PlacesView.aspx?country={0}",
                                  Renderer.UrlEncode(place.Country));

                linkDirections.HRef = DrivingDirectionsUrl;
                linkAdd.NavigateUrl =
                    string.Format("PlaceEdit.aspx?city={0}&state={1}&country={2}&neighborhood={3}&type={4}",
                                  Renderer.UrlEncode(place.City),
                                  Renderer.UrlEncode(place.State),
                                  Renderer.UrlEncode(place.Country),
                                  Renderer.UrlEncode(place.Neighborhood),
                                  Renderer.UrlEncode(place.Type));

                placeAccounts.PlaceId      = RequestId;
                placeAccountEvents.PlaceId = RequestId;
                placeFriends.PlaceId       = RequestId;
                attributesView.PlaceId     = RequestId;
                picturesView.PlaceId       = RequestId;

                labelDescription.Text    = base.RenderEx(place.Description);
                panelDescription.Visible = !string.IsNullOrEmpty(labelDescription.Text);
                placeName.Text           = Renderer.Render(place.Name);
                placeId.Text             = string.Format("#{0}", place.Id);

                linkManagePictures.NavigateUrl = string.Format("PlacePicturesManage.aspx?id={0}", place.Id);

                linkClaimOwnership.Visible     = !place.CanWrite;
                linkClaimOwnership.NavigateUrl = string.Format("AccountPlaceRequestEdit.aspx?pid={0}", place.Id);

                linkPlaceChangeRequestEdit.Visible     = !place.CanWrite;
                linkPlaceChangeRequestEdit.NavigateUrl = string.Format("PlaceChangeRequestEdit.aspx?pid={0}", place.Id);

                if (account != null)
                {
                    linkAddedBy.Text        = Renderer.Render(account.Name);
                    linkAddedBy.NavigateUrl = string.Format("AccountView.aspx?id={0}", account.Id);
                }
                else
                {
                    linkAddedBy.Text = "a deleted user";
                }

                labelAddedOn.Text = Adjust(place.Created).ToString("d");

                linkAdminManageChanges.Visible     = linkAdminEdit.Visible = place.CanWrite || SessionManager.IsAdministrator;
                linkAdminEdit.NavigateUrl          = string.Format("PlaceEdit.aspx?id={0}", place.Id);
                linkAdminManageChanges.NavigateUrl = string.Format("PlaceChangeRequestsManage.aspx?id={0}", place.Id);
                linkAdminAttributes.NavigateUrl    = string.Format("PlaceAttributesManage.aspx?id={0}", place.Id);
                linkMerge.NavigateUrl = string.Format("PlaceMerge.aspx?id={0}", place.Id);
                placeAddress.Text     = Renderer.Render(place.Street);
                placeZip.Text         = Renderer.Render(place.Zip);
                if (!string.IsNullOrEmpty(place.Fax))
                {
                    placeFax.Text = string.Format("{0} (fax)", Renderer.Render(place.Fax));
                }
                if (!string.IsNullOrEmpty(place.Phone))
                {
                    placePhone.Text = string.Format("{0} (phone)", Renderer.Render(place.Phone));
                }
                if (!string.IsNullOrEmpty(place.CrossStreet))
                {
                    placeCrossStreet.Text = string.Format("cross-street: {0}", Renderer.Render(place.CrossStreet));
                }

                placeType.Text         = Renderer.Render(place.Type);
                placeEmail.NavigateUrl = string.Format("mailto:{0}", Renderer.Render(place.Email));
                placeEmail.Visible     = !string.IsNullOrEmpty(place.Email);

                discussionPlaces.DiscussionId = SessionManager.GetCount <TransitDiscussion, string, int>(
                    typeof(Place).Name, RequestId, SessionManager.DiscussionService.GetOrCreateDiscussionId);
                discussionPlaces.DataBind();

                websitesView.PlaceId = RequestId;

                madlibs.ObjectId        = RequestId;
                madlibs.Table           = "Place";
                madlibs.MadLibId        = int.Parse(SessionManager.GetCachedConfiguration("SnCore.MadLibs.Place.Id", "0"));
                madlibs.ReturnUrl       = Request.Url.PathAndQuery;
                madlibs.ObjectAccountId = place.AccountId;
                madlibs.QueryString     = string.Format("&Place.Name={0}", Renderer.UrlEncode(place.Name));

                if (SessionManager.IsAdministrator)
                {
                    linkFeature.Text = (LatestPlaceFeature != null)
                        ? string.Format("Feature &#187; Last on {0}", Adjust(LatestPlaceFeature.Created).ToString("d"))
                        : "Feature &#187; Never Featured";
                }

                redirect.TargetUri = string.Format("PlaceView.aspx?id={0}", place.Id);
                redirect.AccountId = place.AccountId;

                linkAddToGroup.NavigateUrl = string.Format("AccountGroupPlaceAdd.aspx?id={0}", RequestId);
            }
            else
            {
                placeName.Text = Renderer.Render(Request.QueryString["name"]);
                TransitCity city = SessionManager.LocationService.GetCityByTag(
                    SessionManager.Ticket, Request.QueryString["city"]);
                if (city != null)
                {
                    placeCity.Text    = Renderer.Render(city.Name);
                    placeState.Text   = Renderer.Render(city.State);
                    placeCountry.Text = Renderer.Render(city.Country);
                }

                panelViews.Visible          = false;
                panelDetails.Visible        = false;
                panelSubmit.Visible         = true;
                panelDescription.Visible    = false;
                panelPropertyGroups.Visible = false;
                panelEvents.Visible         = false;
                discussionPlaces.Visible    = false;
                madlibs.Visible             = false;
                panelInfo.Visible           = false;
                panelCounter.Visible        = false;
                websitesView.Visible        = false;
                linkEdit.NavigateUrl        = string.Format("PlaceEdit.aspx?{0}", Request.QueryString.ToString());
            }
        }
    }
예제 #13
0
    public LocationEventArgs(TransitCity city)
        : this(city.Country, city.State, city.Name, string.Empty)
    {

    }
예제 #14
0
 public int CreateOrUpdateCity(string ticket, TransitCity city)
 {
     return WebServiceImpl<TransitCity, ManagedCity, City>.CreateOrUpdate(
         ticket, city);
 }