/// <summary>
 /// Constructor accepts a GCalRequest from which to generate a response
 /// </summary>
 /// <param name="request">Incoming request from which to generate a response</param>
 public GCalFreeBusyResponse(GCalFreeBusyRequest request)
 {
     escapedSubject = new StringBuilder(256);
     escapedLocation = new StringBuilder(1024);
     escapedOrganizer = new StringBuilder(256);
     escapedCommonName = new StringBuilder(256);
     this.request = request;
 }
Ejemplo n.º 2
0
        private void ProcessGCalRequest()
        {
            GCalFreeBusyRequest gcalRequest = null;

            try
            {
                Uri referrer = new Uri(Request.ServerVariables["HTTP_REFERER"]);
                if (referrer != null)
                {
                    _useSSL = referrer.Scheme.Equals("https");
                }
            }
            catch (System.ArgumentException)
            {
                // Missing referrer - use non-SSL
            }
            catch (System.UriFormatException)
            {
                // Bad referrer - use non-SSL
            }

            try
            {
                string requestString = Request.Form["text"];

                gcalRequest =
                    new GCalFreeBusyRequest(requestString);

                GCalFreeBusyResponse gcalResponse =
                    new GCalFreeBusyResponse(gcalRequest);

                _responseString = gcalResponse.GenerateResponse();
            }
            catch (GCalExchangeException ex)
            {
                GCalErrorResponse gcalResponse =
                    new GCalErrorResponse(gcalRequest, ex);

                _responseString = gcalResponse.GenerateResponse();
                _log.Error(ex);
            }
            catch (Exception ex)
            {
                GCalErrorResponse gcalResponse = new GCalErrorResponse(ex);

                _responseString = gcalResponse.GenerateResponse();
                _log.Error(ex);
            }
        }
        private void ProcessGCalRequest()
        {
            GCalFreeBusyRequest gcalRequest = null;

            try
            {
                Uri referrer = new Uri(Request.ServerVariables["HTTP_REFERER"]);
                if (referrer != null)
                {
                    _useSSL = referrer.Scheme.Equals("https");
                }
            }
            catch (System.ArgumentException)
            {
                // Missing referrer - use non-SSL
            }
            catch (System.UriFormatException)
            {
                // Bad referrer - use non-SSL
            }

            try
            {
                string requestString = Request.Form["text"];

                gcalRequest =
                    new GCalFreeBusyRequest(requestString);

                GCalFreeBusyResponse gcalResponse =
                    new GCalFreeBusyResponse(gcalRequest);

                _responseString = gcalResponse.GenerateResponse();
            }
            catch (GCalExchangeException ex)
            {
                GCalErrorResponse gcalResponse =
                    new GCalErrorResponse(gcalRequest, ex);

                _responseString = gcalResponse.GenerateResponse();
                _log.Error( ex );
            }
            catch (Exception ex)
            {
                GCalErrorResponse gcalResponse = new GCalErrorResponse(ex);

                _responseString = gcalResponse.GenerateResponse();
                _log.Error( ex );
            }
        }
        /// <summary>
        /// Generate an error response from a request
        /// </summary>
        /// <param name="request">request that generated error</param>
        /// <param name="exception">The exception from the error</param>
        public GCalErrorResponse(GCalFreeBusyRequest request, GCalExchangeException exception)
        {
            if (request != null)
            {
                versionId = request.VersionNumber;
                messageId = request.MessageId;
            }

            errorMessage = exception.Message;
            errorId = (int)(exception.ErrorCode);
        }
        public void TestParse()
        {
            string id = "test-id";
            List<string> emails = new List<string>();
            emails.Add("*****@*****.**");
            emails.Add("*****@*****.**");
            emails.Add("*****@*****.**");
            emails.Add("*****@*****.**");

            DateTime start = DateUtil.ParseDateToUtc("2008-01-01T00:00:00.000Z");
            DateTime end = DateUtil.ParseDateToUtc("2008-01-31T00:00:00.000Z");
            DateTime since = DateUtil.ParseDateToUtc("2008-01-01T00:00:00.000Z");
            string tz = "America/Los_Angeles";

            string query = string.Format("[ 1, {0}, [{1}], {2}/{3}, {4}, {5}]",
                id,
                createEmailList(emails),
                createDate(start),
                createDate(end),
                createDateTime(since),
                tz);

            GCalFreeBusyRequest request =
                new GCalFreeBusyRequest(query);

            Assert.AreEqual(start, request.StartDate);
            Assert.AreEqual(end, request.EndDate);
            Assert.AreEqual(since, request.Since);
            Assert.AreEqual(id, request.MessageId);
            Assert.AreEqual("1", request.VersionNumber);
            Assert.AreEqual(emails.Count, request.ExchangeUsers.Length);

            for (int i = 0; i < request.ExchangeUsers.Length; i++)
            {
                Assert.AreEqual(emails[i], request.ExchangeUsers[i]);
            }
        }