public string GetLogonUrl()
        {
            OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"GetLogonUrl"));

            m_provider.EnsureProviderData();
            return(string.Format("{0}", m_provider.ProviderData.LogonUrl));
        }
        public string GetNetworkIdentifier()
        {
            OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"GetNetworkIdentifier called."));

            m_provider.EnsureProviderData();
            return(string.Format("{0}", m_provider.ProviderData.NetworkGuid.ToString("D")));
        }
        public ISocialProfile GetLoggedOnUser()
        {
            OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"GetLoggedOnUser called."));

            EnsureMe();
            return(m_me);
        }
        public void LogonWeb(string connectIn, out string connectOut)
        {
            if (connectIn == null && !m_logonSequence)
            {
                m_logonSequence = true;
                throw new OSCException(@"Unable to authenticate", OSCExceptions.OSC_E_AUTH_ERROR);
            }

            try
            {
                OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"Calling OSCProvider.LogonWeb."));

                connectOut = m_provider.LogonWeb(connectIn);
            }
            catch (COMException cex)
            {
                OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, cex.Message, cex));

                if (Helpers.IsOSCException(cex))
                {
                    throw;
                }
                else
                {
                    throw new OSCException(@"LogonWeb call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, cex);
                }
            }
            catch (ApplicationException ex)
            {
                OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, ex.Message, ex));

                throw new OSCException(@"LogonWeb call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, ex);
            }
        }
        public void Logon(string userName, string password)
        {
            try
            {
                OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"Calling OSCProvider.Logon"));

                m_provider.Logon(userName, password);
            }
            catch (COMException cex)
            {
                OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, cex.Message, cex));

                if (Helpers.IsOSCException(cex))
                {
                    throw;
                }
                else
                {
                    throw new OSCException(@"Logon call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, cex);
                }
            }
            catch (ApplicationException ex)
            {
                OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, ex.Message, ex));

                throw new OSCException(@"Logon call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, ex);
            }
        }
        public ISocialPerson GetPerson(string userID)
        {
            OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"GetPerson called."));

            Person p;

            p = PersonCache.FindFirst(userID);
            if (p == null)
            {
                try
                {
                    OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"Calling OSCProvider.GetPerson."));

                    p = m_provider.GetPerson(userID);
                }
                catch (COMException cex)
                {
                    OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, cex.Message, cex));

                    if (Helpers.IsOSCException(cex))
                    {
                        throw;
                    }
                    else
                    {
                        throw new OSCException(@"GetPerson call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, cex);
                    }
                }
                catch (ApplicationException ex)
                {
                    OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, ex.Message, ex));
                    throw new OSCException(@"GetPerson call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, ex);
                }
                if (p != null)
                {
                    PersonCache.AddPerson(p);
                }
            }
            if (p != null)
            {
                return(new OSCPerson(m_provider, p));
            }
            else
            {
                return(null);//TODO : if p==null, i need to throw OSC_E_NOT_FOUND;
            }
        }
        public string FindPerson(string userID)
        {
            OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"FindPerson called."));
            Person p;

            p = PersonCache.FindFirst(userID);
            if (p == null)
            {
                try
                {
                    OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Function, @"Calling GetPerson."));

                    p = m_provider.GetPerson(userID);
                }
                catch (COMException cex)
                {
                    OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, cex.Message, cex));

                    if (Helpers.IsOSCException(cex))
                    {
                        throw;
                    }
                    else
                    {
                        throw new OSCException(@"GetPerson call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, cex);
                    }
                }
                catch (ApplicationException ex)
                {
                    OSCProvider.OnTraceEvent(this, new OSCEventArgs(TraceType.Exceptions, ex.Message, ex));

                    throw new OSCException(@"GetPerson call failed.", OSCExceptions.OSC_E_INTERNAL_ERROR, ex);
                }
                PersonCache.AddPerson(p);
            }
            p.SchemaVersion = m_provider.ProviderData.SchemaVersion;
            if (p != null)
            {
                return(p.Xml);
            }
            else
            {
                return(string.Empty);
            }
        }
 internal OSCProfile(OSCProvider provider, Schema.Person personData)
 {
     m_provider   = provider;
     m_personData = personData;
 }
 public OSCSession(OSCProvider provider)
 {
     m_provider = provider;
     EnsureMe();
 }