public static OwaRequestType GetRequestType(HttpRequest request)
        {
            OwaRequestType result;

            if (Globals.IsAnonymousCalendarApp && RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.PublishedCalendar, true))
            {
                result = OwaRequestType.PublishedCalendarView;
            }
            else if (Globals.IsAnonymousCalendarApp && RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.PublishedICal, true))
            {
                result = OwaRequestType.ICalHttpHandler;
            }
            else if (Utility.IsResourceRequest(request.Url.LocalPath))
            {
                result = OwaRequestType.Resource;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.OehUrl, true))
            {
                result = OwaRequestType.Oeh;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.LanguagePage, true))
            {
                result = OwaRequestType.LanguagePage;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.Default14Page, true))
            {
                result = OwaRequestType.Form15;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.AttachmentHandler, true))
            {
                result = OwaRequestType.Attachment;
            }
            else if (UrlUtilities.IsWacRequest(request))
            {
                result = OwaRequestType.WopiRequest;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.LanguagePost, true))
            {
                result = OwaRequestType.LanguagePost;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.LogoffOwa, true))
            {
                result = OwaRequestType.Logoff;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.ProxyLogon, true))
            {
                result = OwaRequestType.ProxyLogon;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.ProxyPing, true))
            {
                result = OwaRequestType.ProxyPing;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.KeepAlive, true))
            {
                result = OwaRequestType.KeepAlive;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.GroupSubscription, true))
            {
                result = OwaRequestType.GroupSubscriptionRequest;
            }
            else if (UrlUtilities.IsRemoteNotificationRequest(request))
            {
                result = OwaRequestType.RemoteNotificationRequest;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.SuiteServiceProxyPage, true))
            {
                result = OwaRequestType.SuiteServiceProxyPage;
            }
            else if (request.Url.LocalPath.EndsWith(".owa") && string.Equals(request.Params["ns"], "WebReady", StringComparison.InvariantCultureIgnoreCase))
            {
                result = OwaRequestType.WebReadyRequest;
            }
            else if (request.Url.LocalPath.EndsWith(".owa", StringComparison.OrdinalIgnoreCase))
            {
                result = OwaRequestType.Invalid;
            }
            else if (RequestDispatcherUtilities.IsOwaUrl(request.Url, OwaUrl.AuthFolderUrl, false))
            {
                result = OwaRequestType.Authorize;
            }
            else if (request.Url.LocalPath.EndsWith(".aspx", StringComparison.OrdinalIgnoreCase) || request.Url.LocalPath.EndsWith(".ashx", StringComparison.OrdinalIgnoreCase))
            {
                result = OwaRequestType.Aspx;
            }
            else if (request.Url.LocalPath.EndsWith(RequestDispatcherUtilities.VirtualDirectoryNameWithLeadingSlash, StringComparison.OrdinalIgnoreCase) || request.Url.LocalPath.EndsWith(RequestDispatcherUtilities.VirtualDirectoryNameWithLeadingAndTrailingSlash, StringComparison.OrdinalIgnoreCase))
            {
                result = OwaRequestType.Form15;
            }
            else if (EsoRequest.IsEsoRequest(request))
            {
                result = OwaRequestType.EsoRequest;
            }
            else if (request.Url.LocalPath.Contains("service.svc"))
            {
                result = OwaRequestType.ServiceRequest;
            }
            else if (request.Url.LocalPath.IndexOf("Speech.reco", StringComparison.OrdinalIgnoreCase) != -1)
            {
                result = OwaRequestType.SpeechReco;
            }
            else if (Globals.IsPreCheckinApp)
            {
                result = OwaRequestType.Form15;
            }
            else
            {
                result = OwaRequestType.Invalid;
            }
            return(result);
        }
 public static bool IsOwaUrl(Uri requestUrl, OwaUrl owaUrl, bool exactMatch)
 {
     return(RequestDispatcherUtilities.IsOwaUrl(requestUrl, owaUrl, exactMatch, true));
 }