Author: fmantek
Date: Wed Oct 17 10:37:27 2007
New Revision: 304

Added:
   trunk/clients/cs/samples/PhotoBrowser/
   trunk/clients/cs/samples/PhotoBrowser/AlbumMeta.cs
   trunk/clients/cs/samples/PhotoBrowser/AssemblyInfo.cs
   trunk/clients/cs/samples/PhotoBrowser/Browser.cs
   trunk/clients/cs/samples/PhotoBrowser/GoogleClientLogin.cs
   trunk/clients/cs/src/VS2003/Photobrowser/
   trunk/clients/cs/src/VS2003/Photobrowser/PhotoBrowser.csproj
Modified:
   trunk/clients/cs/src/core/service.cs

Log:
added a base photobrowser. not finished yet

Added: trunk/clients/cs/samples/PhotoBrowser/AlbumMeta.cs
==============================================================================
--- (empty file)
+++ trunk/clients/cs/samples/PhotoBrowser/AlbumMeta.cs  Wed Oct 17 
10:37:27 2007
@@ -0,0 +1,116 @@
+using System;
+using System.ComponentModel;
+using Google.GData.Client;
+using Google.GData.Photos;
+
+namespace PhotoBrowser
+{
+       /// <summary>
+       /// This class presents the meta data of an album entry that we want
+       /// to expose in the property browser
+       /// </summary>
+       public class AlbumMeta
+       {
+        PicasaEntry myEntry;
+
+               public AlbumMeta(PicasaEntry entry)
+               {
+            this.myEntry = entry;
+               }
+
+        [Category("Base Album Data"),
+        Description("Specifies the name of the album.")]
+        public string AlbumTitle
+        {
+            get
+            {
+                return this.myEntry.Title.Text;
+            }
+            set
+            {
+                this.myEntry.Title.Text = value;
+            }
+        }
+
+        [Category("Base Album Data"),
+        Description("Specifies the summary of the album.")]
+        public string AlbumSummary
+        {
+            get
+            {
+                return this.myEntry.Summary.Text;
+            }
+            set
+            {
+                this.myEntry.Summary.Text = value;
+            }
+        }
+
+        [Category("Base Album Data"),
+        Description("Specifies the author of the album.")]
+        public string AlbumAuthor
+        {
+            get
+            {
+                AtomPersonCollection authors = this.myEntry.Authors;
+                if (authors != null && authors.Count >0)
+                {
+                    AtomPerson person = authors[0];
+                    return person.Name;
+                }
+                return "No Author given";
+
+            }
+            set
+            {
+                AtomPersonCollection authors = this.myEntry.Authors;
+                if (authors != null && authors.Count >0)
+                {
+                    AtomPerson person = authors[0];
+                    person.Name = value;
+                }
+            }
+        }
+
+        [Category("Base Album Data"),
+        Description("Specifies the author's URI.")]
+        public string AlbumAuthorUri
+        {
+            get
+            {
+                AtomPersonCollection authors = this.myEntry.Authors;
+                if (authors != null && authors.Count >0)
+                {
+                    AtomPerson person = authors[0];
+                    return person.Uri.ToString();
+                }
+                return "No Author given";
+
+            }
+            set
+            {
+                AtomPersonCollection authors = this.myEntry.Authors;
+                if (authors != null && authors.Count >0)
+                {
+                    AtomPerson person = authors[0];
+                    person.Uri = new AtomUri(value);
+                }
+            }
+        }
+
+        [Category("Base Album Data"),
+        Description("Specifies the author's nickname")]
+        public string AlbumAuthorNickname
+        {
+            get
+            {
+                return 
this.myEntry.getPhotoExtensionValue(GPhotoNameTable.Nickname);
+            }
+            set
+            {
+               
this.myEntry.setPhotoExtension(GPhotoNameTable.Nickname, value);
+            }
+        }
+
+       }
+}

Added: trunk/clients/cs/samples/PhotoBrowser/AssemblyInfo.cs
==============================================================================
--- (empty file)
+++ trunk/clients/cs/samples/PhotoBrowser/AssemblyInfo.cs       Wed Oct 17 
10:37:27 2007
@@ -0,0 +1,58 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]                
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and 
Build Numbers
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer 
to the
+// Microsoft .NET Framework documentation for more information on 
assembly signing.
+//
+// Use the attributes below to control which key is used for signing.
+//
+// Notes:
+//   (*) If no key is specified, the assembly is not signed.
+//   (*) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider (CSP) on your machine. KeyFile refers to a file 
which contains
+//       a key.
+//   (*) If the KeyFile and the KeyName values are both specified, the
+//       following processing occurs:
+//       (1) If the KeyName can be found in the CSP, that key is used.
+//       (2) If the KeyName does not exist and the KeyFile does exist, 
the key
+//           in the KeyFile is installed into the CSP and used.
+//   (*) In order to create a KeyFile, you can use the sn.exe (Strong 
Name) utility.
+//       When specifying the KeyFile, the location of the KeyFile 
should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your 
KeyFile is
+//       located in the project directory, you would specify the 
AssemblyKeyFile
+//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]

Added: trunk/clients/cs/samples/PhotoBrowser/Browser.cs
==============================================================================
--- (empty file)
+++ trunk/clients/cs/samples/PhotoBrowser/Browser.cs    Wed Oct 17 
10:37:27 2007
@@ -0,0 +1,229 @@
+using System;
+using System.Drawing;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+using System.Data;
+using Google.GData.Photos;
+using Google.GData.Extensions.MediaRss;
+using System.IO;
+
+namespace PhotoBrowser
+{
+       /// <summary>
+       /// Summary description for Form1.
+       /// </summary>
+       public class PhotoBrowser : System.Windows.Forms.Form
+       {
+        private System.ComponentModel.IContainer components;
+        private System.Windows.Forms.ListView AlbumList;
+        private System.Windows.Forms.PictureBox AlbumPicture;
+        private String googleAuthToken = null;
+        private String user = null;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.ImageList imageList1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.PropertyGrid AlbumInspector;
+        private System.Windows.Forms.Button button1;
+        private PicasaService picasaService = new 
PicasaService("PhotoBrowser");
+
+
+               public PhotoBrowser()
+               {
+                       //
+                       // Required for Windows Form Designer support
+                       //
+                       InitializeComponent();
+
+                       //
+                       // TODO: Add any constructor code after 
InitializeComponent call
+                       //
+               }
+
+               /// <summary>
+               /// Clean up any resources being used.
+               /// </summary>
+               protected override void Dispose( bool disposing )
+               {
+                       if( disposing )
+                       {
+                               if (components != null)
+                               {
+                                       components.Dispose();
+                               }
+                       }
+                       base.Dispose( disposing );
+               }
+
+               #region Windows Form Designer generated code
+               /// <summary>
+               /// Required method for Designer support - do not modify
+               /// the contents of this method with the code editor.
+               /// </summary>
+               private void InitializeComponent()
+               {
+            this.components = new System.ComponentModel.Container();
+            this.AlbumList = new System.Windows.Forms.ListView();
+            this.AlbumPicture = new System.Windows.Forms.PictureBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.imageList1 = new 
System.Windows.Forms.ImageList(this.components);
+            this.label2 = new System.Windows.Forms.Label();
+            this.AlbumInspector = new System.Windows.Forms.PropertyGrid();
+            this.button1 = new System.Windows.Forms.Button();
+            this.SuspendLayout();
+            //
+            // AlbumList
+            //
+            this.AlbumList.FullRowSelect = true;
+            this.AlbumList.GridLines = true;
+            this.AlbumList.HeaderStyle = 
System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
+            this.AlbumList.LabelEdit = true;
+            this.AlbumList.Location = new System.Drawing.Point(8, 56);
+            this.AlbumList.Name = "AlbumList";
+            this.AlbumList.Size = new System.Drawing.Size(296, 152);
+            this.AlbumList.Sorting = System.Windows.Forms.SortOrder.Ascending;
+            this.AlbumList.TabIndex = 0;
+            this.AlbumList.View = System.Windows.Forms.View.List;
+            this.AlbumList.SelectedIndexChanged += new 
System.EventHandler(this.AlbumList_SelectedIndexChanged);
+            //
+            // AlbumPicture
+            //
+            this.AlbumPicture.BorderStyle = 
System.Windows.Forms.BorderStyle.Fixed3D;
+            this.AlbumPicture.Location = new System.Drawing.Point(320, 56);
+            this.AlbumPicture.Name = "AlbumPicture";
+            this.AlbumPicture.Size = new System.Drawing.Size(176, 152);
+            this.AlbumPicture.TabIndex = 1;
+            this.AlbumPicture.TabStop = false;
+            //
+            // label1
+            //
+            this.label1.Location = new System.Drawing.Point(16, 16);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(288, 24);
+            this.label1.TabIndex = 2;
+            this.label1.Text = "List of Albums:";
+            //
+            // imageList1
+            //
+            this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
+            this.imageList1.TransparentColor = 
System.Drawing.Color.Transparent;
+            //
+            // label2
+            //
+            this.label2.Location = new System.Drawing.Point(328, 16);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(56, 16);
+            this.label2.TabIndex = 3;
+            this.label2.Text = "Cover:";
+            //
+            // AlbumInspector
+            //
+            this.AlbumInspector.CommandsVisibleIfAvailable = true;
+            this.AlbumInspector.LargeButtons = false;
+            this.AlbumInspector.LineColor = 
System.Drawing.SystemColors.ScrollBar;
+            this.AlbumInspector.Location = new System.Drawing.Point(8, 224);
+            this.AlbumInspector.Name = "AlbumInspector";
+            this.AlbumInspector.Size = new System.Drawing.Size(488, 232);
+            this.AlbumInspector.TabIndex = 4;
+            this.AlbumInspector.Text = "AlbumInspector";
+            this.AlbumInspector.ViewBackColor = 
System.Drawing.SystemColors.Window;
+            this.AlbumInspector.ViewForeColor = 
System.Drawing.SystemColors.WindowText;
+            //
+            // button1
+            //
+            this.button1.Location = new System.Drawing.Point(16, 480);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(120, 40);
+            this.button1.TabIndex = 5;
+            this.button1.Text = "&Save Album Data";
+            this.button1.Click += new System.EventHandler(this.button1_Click);
+            //
+            // PhotoBrowser
+            //
+            this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
+            this.ClientSize = new System.Drawing.Size(512, 552);
+            this.Controls.Add(this.button1);
+            this.Controls.Add(this.AlbumInspector);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.AlbumPicture);
+            this.Controls.Add(this.AlbumList);
+            this.Name = "PhotoBrowser";
+            this.Text = "Google Picasa Browser";
+            this.Load += new System.EventHandler(this.OnLoad);
+            this.ResumeLayout(false);
+
+        }
+               #endregion
+
+               /// <summary>
+               /// The main entry point for the application.
+               /// </summary>
+               [STAThread]
+               static void Main()
+               {
+                       Application.Run(new PhotoBrowser());
+               }
+
+        private void OnLoad(object sender, System.EventArgs e)
+        {
+            if (this.googleAuthToken == null)
+            {
+                GoogleClientLogin loginDialog = new GoogleClientLogin();
+                loginDialog.ShowDialog(this);
+                this.googleAuthToken = loginDialog.AuthenticationToken;
+                this.user = loginDialog.User;
+
+                
picasaService.SetAuthenticationToken(loginDialog.AuthenticationToken);
+                UpdateAlbumFeed();
+            }
+
+        }
+
+
+        private void UpdateAlbumFeed()
+        {
+            AlbumQuery query = new AlbumQuery();
+
+            this.AlbumList.Clear();
+
+
+            query.Uri = new Uri(PicasaQuery.CreatePicasaUri(this.user));
+
+            PicasaFeed feed = this.picasaService.Query(query);
+
+            if (feed != null && feed.Entries.Count > 0)
+            {
+                foreach (PicasaEntry entry in feed.Entries)
+                {
+                    ListViewItem item = new 
ListViewItem(entry.Title.Text +
+                                    " (" + 
entry.getPhotoExtensionValue(GPhotoNameTable.NumPhotos) + " )");
+                    item.Tag = entry;
+                    this.AlbumList.Items.Add(item);
+                }
+            }
+            this.AlbumList.Update();
+        }
+
+        private void AlbumList_SelectedIndexChanged(object sender, 
System.EventArgs e)
+        {
+            foreach (ListViewItem item in this.AlbumList.SelectedItems)
+            {
+                PicasaEntry entry = item.Tag as PicasaEntry;
+                MediaThumbnail thumb = entry.Media.Thumbnails[0];
+                Stream stream  = this.picasaService.Query(new 
Uri(thumb.Attributes["url"] as string));
+                this.AlbumPicture.Image = new Bitmap(stream);
+                this.AlbumInspector.SelectedObject = new AlbumMeta(entry);
+            }
+        }
+
+        private void button1_Click(object sender, System.EventArgs e)
+        {
+            foreach (ListViewItem item in this.AlbumList.SelectedItems)
+            {
+                PicasaEntry entry = item.Tag as PicasaEntry;
+                entry.Update();
+            }
+        }
+       }
+}

Added: trunk/clients/cs/samples/PhotoBrowser/GoogleClientLogin.cs
==============================================================================
--- (empty file)
+++ trunk/clients/cs/samples/PhotoBrowser/GoogleClientLogin.cs  Wed Oct 
17 10:37:27 2007
@@ -0,0 +1,205 @@
+using System;
+using System.Drawing;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+using Google.GData.Photos;
+
+namespace PhotoBrowser
+{
+       /// <summary>
+       /// Summary description for GoogleClientLoging.
+       /// </summary>
+       public class GoogleClientLogin : System.Windows.Forms.Form
+       {
+        private string authToken;
+
+        private System.Windows.Forms.TextBox Password;
+        private System.Windows.Forms.CheckBox RememberToken;
+        private System.Windows.Forms.Button Login;
+        private System.Windows.Forms.Button Cancel;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox Username;
+               /// <summary>
+               /// Required designer variable.
+               /// </summary>
+               private System.ComponentModel.Container components = null;
+
+               public GoogleClientLogin()
+               {
+                       //
+                       // Required for Windows Form Designer support
+                       //
+                       InitializeComponent();
+
+                       //
+                       // TODO: Add any constructor code after 
InitializeComponent call
+                       //
+            this.Username.Text = "[EMAIL PROTECTED]";
+            this.Password.Text = "xapitest";
+               }
+
+        public GoogleClientLogin(string username)
+        {
+            //
+            // Required for Windows Form Designer support
+            //
+            InitializeComponent();
+
+            //
+            // TODO: Add any constructor code after 
InitializeComponent call
+            //
+            this.Username.Text = username;
+        }
+
+               /// <summary>
+               /// Clean up any resources being used.
+               /// </summary>
+               protected override void Dispose( bool disposing )
+               {
+                       if( disposing )
+                       {
+                               if(components != null)
+                               {
+                                       components.Dispose();
+                               }
+                       }
+                       base.Dispose( disposing );
+               }
+
+               #region Windows Form Designer generated code
+               /// <summary>
+               /// Required method for Designer support - do not modify
+               /// the contents of this method with the code editor.
+               /// </summary>
+               private void InitializeComponent()
+               {
+            this.Login = new System.Windows.Forms.Button();
+            this.Cancel = new System.Windows.Forms.Button();
+            this.Username = new System.Windows.Forms.TextBox();
+            this.Password = new System.Windows.Forms.TextBox();
+            this.RememberToken = new System.Windows.Forms.CheckBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            //
+            // Login
+            //
+            this.Login.Location = new System.Drawing.Point(240, 104);
+            this.Login.Name = "Login";
+            this.Login.Size = new System.Drawing.Size(80, 32);
+            this.Login.TabIndex = 0;
+            this.Login.Text = "&Login";
+            this.Login.Click += new System.EventHandler(this.Login_Click);
+            //
+            // Cancel
+            //
+            this.Cancel.Location = new System.Drawing.Point(144, 104);
+            this.Cancel.Name = "Cancel";
+            this.Cancel.Size = new System.Drawing.Size(80, 32);
+            this.Cancel.TabIndex = 1;
+            this.Cancel.Text = "&Cancel";
+            this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
+            //
+            // Username
+            //
+            this.Username.Location = new System.Drawing.Point(112, 16);
+            this.Username.Name = "Username";
+            this.Username.Size = new System.Drawing.Size(208, 22);
+            this.Username.TabIndex = 2;
+            this.Username.Text = "[EMAIL PROTECTED]";
+            //
+            // Password
+            //
+            this.Password.Location = new System.Drawing.Point(112, 48);
+            this.Password.Name = "Password";
+            this.Password.PasswordChar = '*';
+            this.Password.Size = new System.Drawing.Size(208, 22);
+            this.Password.TabIndex = 3;
+            this.Password.Text = "";
+            //
+            // RememberToken
+            //
+            this.RememberToken.Location = new System.Drawing.Point(16, 80);
+            this.RememberToken.Name = "RememberToken";
+            this.RememberToken.Size = new System.Drawing.Size(160, 24);
+            this.RememberToken.TabIndex = 4;
+            this.RememberToken.Text = "Remember the Token";
+            //
+            // label1
+            //
+            this.label1.Location = new System.Drawing.Point(16, 16);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(88, 32);
+            this.label1.TabIndex = 5;
+            this.label1.Text = "Username:";
+            //
+            // label2
+            //
+            this.label2.Location = new System.Drawing.Point(16, 48);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(88, 32);
+            this.label2.TabIndex = 6;
+            this.label2.Text = "Password: ";
+            //
+            // GoogleClientLogin
+            //
+            this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
+            this.ClientSize = new System.Drawing.Size(344, 152);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.RememberToken);
+            this.Controls.Add(this.Password);
+            this.Controls.Add(this.Username);
+            this.Controls.Add(this.Cancel);
+            this.Controls.Add(this.Login);
+            this.Name = "GoogleClientLogin";
+            this.Text = "GoogleClientLoging";
+            this.ResumeLayout(false);
+
+        }
+               #endregion
+
+
+        public string AuthenticationToken
+        {
+            get
+            {
+                return this.authToken;
+            }
+        }
+
+        public bool RememberAuthentication
+        {
+            get
+            {
+                return this.RememberToken.Checked;
+            }
+        }
+
+        public string User
+        {
+            get
+            {
+                return this.Username.Text;
+            }
+        }
+
+        private void Cancel_Click(object sender, System.EventArgs e)
+        {
+            this.authToken = null;
+            this.Close();
+        }
+
+        private void Login_Click(object sender, System.EventArgs e)
+        {
+            PicasaService service = new PicasaService("PhotoBrowser");
+            service.setUserCredentials(this.Username.Text, this.Password.Text);
+            this.authToken = service.QueryAuthenticationToken();
+            this.Close();
+        }
+
+
+       }
+}

Added: trunk/clients/cs/src/VS2003/Photobrowser/PhotoBrowser.csproj
==============================================================================
--- (empty file)
+++ trunk/clients/cs/src/VS2003/Photobrowser/PhotoBrowser.csproj        Wed 
Oct 17 10:37:27 2007
@@ -0,0 +1,138 @@
+<VisualStudioProject>
+    <CSHARP
+        ProjectType = "Local"
+        ProductVersion = "7.10.6030"
+        SchemaVersion = "2.0"
+        ProjectGuid = "{40CB899F-54ED-4863-BF78-58BA793A1478}"
+    >
+        <Build>
+            <Settings
+                ApplicationIcon = ""
+                AssemblyKeyContainerName = ""
+                AssemblyName = "PhotoBrowser"
+                AssemblyOriginatorKeyFile = ""
+                DefaultClientScript = "JScript"
+                DefaultHTMLPageLayout = "Grid"
+                DefaultTargetSchema = "IE50"
+                DelaySign = "false"
+                OutputType = "WinExe"
+                PreBuildEvent = ""
+                PostBuildEvent = ""
+                RootNamespace = "PhotoBrowser"
+                RunPostBuildEvent = "OnBuildSuccess"
+                StartupObject = ""
+            >
+                <Config
+                    Name = "Debug"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "DEBUG;TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "true"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "false"
+                    OutputPath = "bin\Debug\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+                <Config
+                    Name = "Release"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "false"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    NoStdLib = "false"
+                    NoWarn = ""
+                    Optimize = "true"
+                    OutputPath = "bin\Release\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+            </Settings>
+            <References>
+                <Reference
+                    Name = "System"
+                    AssemblyName = "System"
+                    HintPath = 
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
+                />
+                <Reference
+                    Name = "System.Data"
+                    AssemblyName = "System.Data"
+                    HintPath = 
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
+                />
+                <Reference
+                    Name = "System.Drawing"
+                    AssemblyName = "System.Drawing"
+                    HintPath = 
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
+                />
+                <Reference
+                    Name = "System.Windows.Forms"
+                    AssemblyName = "System.Windows.Forms"
+                    HintPath = 
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
+                />
+                <Reference
+                    Name = "System.XML"
+                    AssemblyName = "System.Xml"
+                    HintPath = 
"C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
+                />
+                <Reference
+                    Name = "Google.GData.Photos"
+                    AssemblyName = "Google.GData.Photos"
+                    HintPath = 
"..\..\..\src\VS2003\gphotos\bin\Debug\Google.GData.Photos.dll"
+                />
+                <Reference
+                    Name = "Google.GData.Client"
+                    AssemblyName = "Google.GData.Client"
+                    HintPath = 
"..\..\..\src\VS2003\gphotos\bin\Debug\Google.GData.Client.dll"
+                />
+                <Reference
+                    Name = "Google.GData.Extensions"
+                    AssemblyName = "Google.GData.Extensions"
+                    HintPath = 
"..\..\..\src\VS2003\gphotos\bin\Debug\Google.GData.Extensions.dll"
+                />
+            </References>
+        </Build>
+        <Files>
+            <Include>
+                <File
+                    RelPath = "AlbumMeta.cs"
+                    Link = "..\..\..\samples\PhotoBrowser\AlbumMeta.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "AssemblyInfo.cs"
+                    Link = "..\..\..\samples\PhotoBrowser\AssemblyInfo.cs"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "Browser.cs"
+                    Link = "..\..\..\samples\PhotoBrowser\Browser.cs"
+                    SubType = "Form"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "GoogleClientLogin.cs"
+                    Link = "..\..\..\samples\PhotoBrowser\GoogleClientLogin.cs"
+                    SubType = "Form"
+                    BuildAction = "Compile"
+                />
+            </Include>
+        </Files>
+    </CSHARP>
+</VisualStudioProject>
+

Modified: trunk/clients/cs/src/core/service.cs
==============================================================================
--- trunk/clients/cs/src/core/service.cs        (original)
+++ trunk/clients/cs/src/core/service.cs        Wed Oct 17 10:37:27 2007
@@ -196,7 +196,20 @@
                 }
             }
             return null;
+        }

+        /// <summary>
+        /// if the service is using a Google Request Factory it will 
set the passed
+        /// in token to the factory
+        /// </summary>
+        /// <returns>string</returns>
+        public void SetAuthenticationToken(string token)
+        {
+            GDataGAuthRequestFactory factory = 
this.GDataRequestFactory as GDataGAuthRequestFactory;
+            if (factory != null)
+            {
+                factory.GAuthToken = token;
+            }
         }



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Data API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-help-dataapi?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to