public ApplicationCalendars()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;
        }
Example #2
0
        public void AlteredDefaultDataCentre()
        {
            var defaultDataCentre = Configuration.DefaultDataCentre;

            try
            {
                Configuration.DefaultDataCentre = DataCentre.German;

                this.client = new CronofyOAuthClient(clientId, clientSecret);

                var authUrl         = client.GetAuthorizationUrlBuilder(redirectUri).Build();
                var expectedAuthUrl = string.Format(
                    "https://app-de.cronofy.com/oauth/authorize" +
                    "?client_id={0}" +
                    "&response_type=code" +
                    "&redirect_uri={1}" +
                    "&scope=read_account%20read_events%20create_event%20delete_event",
                    UrlBuilder.EncodeParameter(clientId),
                    UrlBuilder.EncodeParameter(redirectUri));

                Assert.AreEqual(expectedAuthUrl, authUrl);
            }
            finally
            {
                Configuration.DefaultDataCentre = defaultDataCentre;
            }
        }
Example #3
0
        public HmacVerification()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;
        }
Example #4
0
        public GetTokenFromRefreshToken()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;
        }
Example #5
0
        public void SetUp()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http = new StubHttpClient();

            client.HttpClient = http;
        }
Example #6
0
        public void SetUp()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;
        }
Example #7
0
        public RevokeToken()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;
        }
Example #8
0
        public void SetUp()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;

            this.upsertEventRequest = new SmartInviteEventRequestBuilder()
                                      .Summary(summary)
                                      .Start(start)
                                      .End(end)
                                      .Build();
        }
Example #9
0
        public AddToCalendar()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;

            this.upsertEventRequest = new UpsertEventRequestBuilder()
                                      .EventId(eventId)
                                      .Summary(summary)
                                      .Start(start)
                                      .End(end)
                                      .Build();
        }
Example #10
0
        /// <summary>
        /// Real-Time Scheduling example.
        /// </summary>
        private static void RealTimeSchedulingExample()
        {
            Console.Write("Enter Client id: ");
            var clientId = Console.ReadLine();

            Console.Write("Enter Secret: ");
            var clientSecret = Console.ReadLine();

            Console.Write("Enter Account id for availablity: ");
            var sub = Console.ReadLine();

            Console.Write("Enter calendar id for availablity: ");
            var calendarId = Console.ReadLine();

            string redirectUrl = "http://example.com/redirectUri";
            string scope       = "read_events create_event";

            string         eventId = "testEventId";
            string         summary = "Test Summary";
            DateTimeOffset start   = DateTime.Now;
            DateTimeOffset end     = DateTime.Now + new TimeSpan(2, 0, 0);

            var client = new CronofyOAuthClient(clientId, clientSecret);

            var upsertEventRequest = new UpsertEventRequestBuilder()
                                     .EventId(eventId)
                                     .Summary(summary)
                                     .Build();

            var availabilityRequest = new AvailabilityRequestBuilder()
                                      .AddParticipantGroup(new ParticipantGroupBuilder().AddMember(sub).AllRequired())
                                      .AddAvailablePeriod(start, end)
                                      .RequiredDuration(60)
                                      .Build();

            var request = new RealTimeSchedulingRequestBuilder()
                          .OAuthDetails(redirectUrl, scope)
                          .Timezone("Etc/UTC")
                          .UpsertEventRequest(upsertEventRequest)
                          .AvailabilityRequest(availabilityRequest)
                          .AddTargetCalendar(sub, calendarId)
                          .Build();

            var actualUrl = client.RealTimeScheduling(request);

            Console.WriteLine(actualUrl);

            Process.Start(actualUrl);
        }
Example #11
0
        public void ExplicitDefaultDataCentre()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret, "us");

            var authUrl         = client.GetAuthorizationUrlBuilder(redirectUri).Build();
            var expectedAuthUrl = string.Format(
                "https://app.cronofy.com/oauth/authorize" +
                "?client_id={0}" +
                "&response_type=code" +
                "&redirect_uri={1}" +
                "&scope=read_account%20read_events%20create_event%20delete_event",
                UrlBuilder.EncodeParameter(clientId),
                UrlBuilder.EncodeParameter(redirectUri));

            Assert.AreEqual(expectedAuthUrl, authUrl);
        }
Example #12
0
        public void SetUp()
        {
            this.client = new CronofyOAuthClient(clientId, clientSecret);
            this.http   = new StubHttpClient();

            client.HttpClient = http;

            this.upsertEventRequestWithoutStartAndEnd = new UpsertEventRequestBuilder()
                                                        .EventId(eventId)
                                                        .Summary(summary)
                                                        .Build();

            this.availabilityRequest = new AvailabilityRequestBuilder()
                                       .AddParticipantGroup(new ParticipantGroupBuilder().AddMember(sub))
                                       .AddAvailablePeriod(start, end)
                                       .RequiredDuration(60)
                                       .Build();
        }
Example #13
0
        /// <summary>
        /// Add To Calendar example.
        /// </summary>
        private static void AddToCalendarExample()
        {
            Console.Write("Enter Client id: ");
            var clientId = Console.ReadLine();

            Console.Write("Enter Secret: ");
            var clientSecret = Console.ReadLine();

            string redirectUrl = "http://example.com/redirectUri";
            string scope       = "read_events create_event";

            string         eventId = "testEventId";
            string         summary = "Test Summary";
            DateTimeOffset start   = DateTime.Now;
            DateTimeOffset end     = DateTime.Now + new TimeSpan(2, 0, 0);

            var client = new CronofyOAuthClient(clientId, clientSecret);

            var upsertEventRequest = new UpsertEventRequestBuilder()
                                     .EventId(eventId)
                                     .Summary(summary)
                                     .Start(start)
                                     .End(end)
                                     .Build();

            var request = new AddToCalendarRequestBuilder()
                          .OAuthDetails(redirectUrl, scope)
                          .UpsertEventRequest(upsertEventRequest)
                          .Build();

            var actualUrl = client.AddToCalendar(request);

            Console.WriteLine(actualUrl);

            Process.Start(actualUrl);
        }
 public void SetUp()
 {
     this.client = new CronofyOAuthClient(clientId, clientSecret);
 }
Example #15
0
 public void SetUp()
 {
     this.client = new CronofyOAuthClient(clientId, clientSecret);
 }
Example #16
0
 public GetAuthorizationUrl()
 {
     this.client = new CronofyOAuthClient(clientId, clientSecret);
 }
        public void CanGetOAuthUrlWithAvailabilityTargetCalendarsAndHourFormat()
        {
            var start = new DateTime(2014, 8, 5, 15, 30, 0, DateTimeKind.Utc);
            var end   = new DateTime(2014, 8, 5, 16, 30, 0, DateTimeKind.Utc);

            var client = new CronofyOAuthClient(clientId, clientSecret);
            var http   = new StubHttpClient();

            client.HttpClient = http;

            var upsertEventRequestWithoutStartAndEnd = new UpsertEventRequestBuilder()
                                                       .EventId("testEventId")
                                                       .Summary("Test Summary")
                                                       .Build();

            var sequenceBuilder = new SequenceRequestBuilder()
                                  .RequiredDuration(60)
                                  .Ordinal(1)
                                  .SequenceId("First Event")
                                  .Event(upsertEventRequestWithoutStartAndEnd)
                                  .AddRequiredParticipant("acc_567236000909002")
                                  .AddRequiredParticipant("acc_678347111010113");

            var availabilityRequest = new SequencedAvailabilityRequestBuilder()
                                      .AddSequence(sequenceBuilder)
                                      .AddAvailablePeriod(start, end)
                                      .Build();

            var expectedUrl = "http://test.com";

            http.Stub(
                HttpPost
                .Url("https://api.cronofy.com/v1/real_time_sequencing")
                .JsonRequest(@"
                    {
                      ""availablity"":{
                         ""sequence"":[
                              {
                                ""ordinal"":1,
                                ""sequence_id"":""First Event"",
                                ""event"":{
                                    ""event_id"":""testEventId"",
                                    ""summary"":""Test Summary""
                                },
                                ""participants"":[
                                  {
                                    ""members"":[
                                      { ""sub"":""acc_567236000909002"" },
                                      { ""sub"":""acc_678347111010113"" }
                                    ],
                                ""required"":""all""
                              }
                            ],
                            ""required_duration"":{
                              ""minutes"":60
                            },
                            ""available_periods"":[ ]
                          }
                        ],
                        ""available_periods"":[
                          {
                            ""start"":""2014-08-05 15:30:00Z"",
                            ""end"":""2014-08-05 16:30:00Z""
                          }
                        ]
                      },
                      ""client_id"":""abcdef123456"",
                      ""client_secret"":""s3cr3t1v3"",
                      ""oauth"":{
                        ""redirect_uri"":""http://example.com/redirectUri"",
                        ""scope"":""test_scope""
                      },
                      ""event"":{
                        ""event_id"":""testEventId"",
                        ""summary"":""Test Summary""
                      },
                      ""target_calendars"":[
                        {
                          ""sub"":""sub"",
                          ""calendar_id"":""calendarId""
                        }
                      ],
                      ""formatting"":{
                        ""hour_format"":""H""
                      },
                      ""tzid"":""Etc/UTC""
                    }")
                .ResponseCode(200)
                .ResponseBodyFormat("{{\"url\":\"{0}\"}}", expectedUrl)
                );

            var request = new RealTimeSequencingRequestBuilder()
                          .OAuthDetails("http://example.com/redirectUri", "test_scope")
                          .Timezone("Etc/UTC")
                          .UpsertEventRequest(upsertEventRequestWithoutStartAndEnd)
                          .SequencedAvailabilityRequest(availabilityRequest)
                          .AddTargetCalendar("sub", "calendarId")
                          .HourFormat("H")
                          .Build();

            var actualUrl = client.RealTimeSequencing(request);

            Assert.AreEqual(expectedUrl, actualUrl);
        }