Portal Search Online

This samples shows how to use the Portal API to search public webmaps on ArcGIS.com that matches the search criterion. To use the sample, enter the search keyword and press enter. Webmaps matching the search parameters will be listed. To view details of an item click on its description to display the display panel. You can also view/open the webmap by clicking thumbnail image. To access the results list after the webmap is opened , click on Back to Results button on top left corner of the sample. There is an option to login in to portal and limit the search only within the organization.

Download Sample Application
XAML C# VB.NET
<UserControl x:Class="ArcGISWPFSDK.PortalSearch"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
    xmlns:samples="clr-namespace:ArcGISWPFSDK">
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.Resources>
            <samples:HtmlToTextConverter x:Key="HtmlToTextConverter" />
            <samples:RatingConverter x:Key="RatingConverter" />
        </Grid.Resources>

        <Grid.RowDefinitions>
            <RowDefinition  Height="Auto"/>
            <RowDefinition  Height="*" />
        </Grid.RowDefinitions>

        <Grid Grid.Row="0"  Margin="5">
            <ToolBar Height="auto" HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="15" Background="Gray">
                <TextBox x:Name="QueryText" Width="500" KeyDown="QueryText_KeyDown" Text="World"/>
                <Button Content="Search" Click="DoSearch_Click" Margin="5,0,5,0" />
                <Separator></Separator>
                <Button x:Name="BackToResults" Content="Back to Results" Click="BackToResults_Click" Margin="5,0,5,0" />
                <Separator></Separator>
                <Button x:Name="SignInButton" Content="Sign In" Click="ShowSignIn_Click" Margin="5,0,5,0"/>
            </ToolBar>
        </Grid>

        <Grid Grid.Row="1">

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>

            <ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Column="0">
                <ListBox x:Name="ResultsListBox"
                         Background="Transparent"				
                         Grid.Row="2"
                         Margin="10,3,0,0"
                         BorderThickness="0"
                         ScrollViewer.HorizontalScrollBarVisibility="Disabled">
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <WrapPanel Orientation="Horizontal"
                                       x:Name="ResultListBoxWrapPanel" />
                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>
                    <ListBox.ItemTemplate>
                        <DataTemplate >
                            <Grid x:Name="ResultItem" Width="300" MouseLeftButtonDown="ResultItem_MouseLeftButtonDown">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition Height="Auto" />
                                </Grid.RowDefinitions>
                                <TextBlock Text="{Binding Title}"
                                           TextTrimming="WordEllipsis" 
                                           Grid.Row="0"
                                           FontSize="12"
                                           Margin="5,5,5,0"
                                           TextWrapping="NoWrap" />
                                <StackPanel Orientation="Horizontal" Grid.Row="1">
                                    <TextBlock Text="{Binding Type}"
                                               FontSize="10" Margin="5,0,0,0" />
                                    <TextBlock Text="by"
                                               FontSize="10" Margin="2,0,0,0" />
                                    <TextBlock Text="{Binding Owner}" 
                                               Margin="2,0,0,0" FontSize="10" />
                                    <TextBlock Text="(last modified:"
                                               Margin="2,0,0,0" FontSize="10" />
                                    <TextBlock Text="{Binding ModificationDate, StringFormat='MMMM dd, yyyy)'}"
                                               FontSize="10" Margin="2,0,0,0" />
                                </StackPanel>
                                <Grid Grid.Row="2">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="85" />
                                        <RowDefinition Height="*" />
                                    </Grid.RowDefinitions>
                                    <Grid Margin="5, 0, 10, 0"
                                          Grid.Row="0" Grid.Column="0" Grid.RowSpan="2">
                                        <Border BorderBrush="Black" BorderThickness="2" >
                                            <Image Source="{Binding ThumbnailUri}"						   
                                                   MouseLeftButtonDown="Image_MouseLeftButtonDown"
                                                   MaxHeight="80" MaxWidth="120" />
                                        </Border>
                                    </Grid>
                                    <TextBlock Text="{Binding Description, Converter={StaticResource HtmlToTextConverter}}"
                                               TextTrimming="WordEllipsis"
                                               Grid.Row="0"
                                               Grid.Column="1"
                                               Height="85"
                                               TextWrapping="Wrap"
                                               FontSize="10"
                                               Width="235"
                                               Margin="5,5,5,1" />
                                </Grid>
                            </Grid>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </ScrollViewer>

            <Grid x:Name="MapItemDetail" Grid.Column="1"
                  Visibility="Collapsed" Width="300" Margin="20,0,0,0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>

                <Grid Grid.Row="1">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <TextBlock Text="{Binding Title}"
                               TextTrimming="WordEllipsis"
                               Margin="5"
                               FontSize="18" />
                </Grid>

                <Grid Grid.Row="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
                    <Grid Margin="5, 0, 10, 10"
                      HorizontalAlignment="Left">
                        <Rectangle Width="210"
                                   Height="143"
                                   Fill="White"
                                   Stroke="Gray" />
                        <Image Source="{Binding ThumbnailUri}"
                               MouseLeftButtonDown="Image_MouseLeftButtonDown"
                               Height="133"
                               Width="200" />
                    </Grid>
                </Grid>
                <ScrollViewer Grid.Row="3"
                              Background="Transparent"
                              Width="400"
                              Margin="5,0,0,0"
                              BorderThickness="0,1,0,0"
                              HorizontalAlignment="Stretch"
                              VerticalScrollBarVisibility="Auto"
                              HorizontalScrollBarVisibility="Auto"
                              Padding="0">
                    <Grid Margin="0, 10, 0, 10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="200" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="50" />
                            <RowDefinition Height="25" />
                            <RowDefinition Height="25" />
                        </Grid.RowDefinitions>
                        <TextBlock Text="Summary" />
                        <Grid Grid.Column="1">
                            <TextBlock Text="{Binding Description, Converter={StaticResource HtmlToTextConverter}}"
                                       TextTrimming="WordEllipsis"
                                       HorizontalAlignment="Stretch"
                                       MaxHeight="100"
                                       TextWrapping="Wrap" />
                        </Grid>
                        <TextBlock Grid.Row="1"
                                   Text="Tags"
                                   Margin="0,6,0,0" />
                        <Grid Grid.Column="1"
                              Grid.Row="1"
                              Margin="0,5,0,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <ListBox ItemsSource="{Binding Tags}"
                                     Background="Transparent"
                                     BorderBrush="Transparent"
                                     ScrollViewer.VerticalScrollBarVisibility="Disabled"
                                     ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                                     HorizontalAlignment="Left"
                                     Margin="-7,0,0,0">
                                <ListBox.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <WrapPanel Width="200" />
                                    </ItemsPanelTemplate>
                                </ListBox.ItemsPanel>
                            </ListBox>
                        </Grid>
                        <TextBlock Grid.Row="2"
                                   Text="Type"
                                   Margin="0,6,0,0" />
                        <TextBlock Grid.Row="2"
                                   Grid.Column="1"
                                   Text="{Binding Type}"
                                   Margin="0,6,0,0" />
                        <Grid Margin="0,13,0,0"
                              Grid.Row="3"
                              Grid.Column="0" Grid.ColumnSpan="2">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <TextBlock Grid.Column="1" Margin="0">
                                <Run Text="{Binding AvgRating, StringFormat='Average Rating = {0}', Mode=OneWay}" />
                                <Run Text="{Binding NumRatings, StringFormat='\({0} ratings,', Mode=OneWay}" />
                                <Run Text="{Binding NumViews, StringFormat='\{0} views)', Mode=OneWay}"/>
                            </TextBlock>
                        </Grid>
                        <TextBlock Grid.Row="4" Text="Last Modified" Margin="0,0,5,0" />
                        <TextBlock Grid.Row="4" Grid.Column="1"
                                   Text="{Binding ModificationDate, StringFormat='MMMM dd, yyyy'}" />
                        <TextBlock Grid.Row="5"
                                   Text="Owner" />
                        <TextBlock Grid.Row="5" Grid.Column="1"
                                   Text="{Binding Owner}"/>
                    </Grid>
                </ScrollViewer>
            </Grid>

            <Grid x:Name="WebmapContent" Grid.ColumnSpan="2"
                  Visibility="Collapsed"
                  Background="#FF565656"/>
        </Grid>

        <Grid Name="ShadowGrid" Grid.RowSpan="2" VerticalAlignment="Stretch" 
              HorizontalAlignment="Stretch" Background="#66121212" Visibility="Collapsed" />

        <Grid Name="LoginGrid" MaxWidth="250" HorizontalAlignment="Right" VerticalAlignment="Top" Visibility="Collapsed"
              Margin="0,15,15,0"  Grid.Row="1">
            <Rectangle Stroke="DarkBlue" Fill="LightGray" Margin="-10" >
                <Rectangle.Effect>
                    <DropShadowEffect/>
                </Rectangle.Effect>
            </Rectangle>

            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <TextBlock Text="Username" Grid.Column="0" Grid.Row="1"
                           Margin="2" VerticalAlignment="Center" />
                <TextBox Name="UserTextBox" HorizontalAlignment="Right" Margin="2" 
                         Grid.Column="1" Grid.Row="1" Width="140" />
                <TextBlock Text="Password" Grid.Column="0" Grid.Row="2"
                           Margin="2" VerticalAlignment="Center" />
                <PasswordBox Name="PasswordTextBox" HorizontalAlignment="Right" Margin="2" Grid.Column="1" Grid.Row="2" Width="140" />
                <StackPanel Orientation="Horizontal"  Grid.Row="3" Grid.ColumnSpan="2" HorizontalAlignment="Right">
                    <Button Name="OK" Content="OK" Margin="0,5,0,5" Click="SignIn_Click"/>
                    <Button Name="Cancel" Content="Cancel" Margin="10,5,0,5" Click="Cancel_Click"
                            HorizontalAlignment="Right" />
                </StackPanel>
            </Grid>
        </Grid>
    </Grid>
</UserControl>
Sample code usage restrictions
5/16/2014