Beispiel #1
0
        public static async Task Run(WrikeClient client)
        {
            //Get all timelog records in all accounts.
            var timelogs = await client.Timelogs.GetAsync();

            var newTimelog = new WrikeTimelog("IEACGXLUKQIGFGAK", 1m, DateTime.Now, comment: "test timelog");

            newTimelog = await client.Timelogs.CreateAsync(newTimelog);



            //Get all timelog records for a task.
            //var timelogs = await client.Timelogs.GetAsync(taskId: "IEABX2HEKQGPEIPC");

            //Get all timelog records in the account.
            //var timelogs = await client.Timelogs.GetAsync(accountId: "IEABX2HE");

            //Get all timelog records in the account by createdDate
            //var timelogs = await client.Timelogs.GetAsync(
            //    accountId: "IEABX2HE",
            //    createdDate: new WrikeDateFilterRange(new DateTime(2018, 1, 29), new DateTime(2018, 1, 30)));

            //var timelog = await client.Timelogs.GetAsync(timelogId: "IEABX2HEJQAAKOKI");

            /*
             * var newTimelog = new WrikeTimelog("IEABX2HEKQGGVPW3", "comment test", 0.5m, DateTime.Now);
             * newTimelog = await client.Timelogs.CreateAsync(newTimelog);
             *
             * var updatedTimelog = await client.Timelogs.UpdateAsync(newTimelog.Id, comment: "updated comment");
             *
             * await client.Timelogs.DeleteAsync(newTimelog.Id);
             */
        }
Beispiel #2
0
        public void CreateAsync_NewTimelogNull_ThrowArgumentNullException()
        {
            WrikeTimelog newTimelog = null;

            var ex = Assert.ThrowsAsync <ArgumentNullException>(() => TestConstants.WrikeClient.Timelogs.CreateAsync(newTimelog));

            Assert.AreEqual("newTimelog", ex.ParamName);
        }
        public void CreateAsync_ShouldAddNewTimelogWithoutComment()
        {
            var newTimelog     = new WrikeTimelog("IEACGXLUKQIGFGAK", 1m, DateTime.Now);
            var createdTimelog = WrikeClientFactory.GetWrikeClient().Timelogs.CreateAsync(newTimelog).Result;

            Assert.IsNotNull(newTimelog);

            //TODO: test other parameters
        }
        public void CreateAsync_ShouldAddNewTimelogWithComment()
        {
            var newTimelog     = new WrikeTimelog(DefaultTaskId, 1m, DateTime.Now, comment: "test timelog #2");
            var createdTimelog = WrikeClientFactory.GetWrikeClient().Timelogs.CreateAsync(newTimelog).Result;

            Assert.IsNotNull(newTimelog);
            Assert.AreEqual(newTimelog.Comment, createdTimelog.Comment);

            //TODO: test other parameters
        }
        public void DeleteAsync_ShouldDeleteNewTimelog()
        {
            var newTimelog     = new WrikeTimelog("IEACGXLUKQIGFGAK", 1m, DateTime.Now);
            var createdTimelog = WrikeClientFactory.GetWrikeClient().Timelogs.CreateAsync(newTimelog).Result;

            WrikeClientFactory.GetWrikeClient().Timelogs.DeleteAsync(createdTimelog.Id).Wait();

            var timelogs         = WrikeClientFactory.GetWrikeClient().Timelogs.GetAsync().Result;
            var isTimelogDeleted = !timelogs.Any(t => t.Id == createdTimelog.Id);

            Assert.IsTrue(isTimelogDeleted);
        }
        public void UpdateAsync_ShouldUpdateTimelogComment()
        {
            var newTimelog = new WrikeTimelog("IEACGXLUKQIGFGAK", 1m, DateTime.Now, comment: "test timelog #2");

            newTimelog = WrikeClientFactory.GetWrikeClient().Timelogs.CreateAsync(newTimelog).Result;

            var expectedComment = "test timelog #2 [Updated]";
            var updatedTimelog  = WrikeClientFactory.GetWrikeClient().Timelogs.UpdateAsync(newTimelog.Id, expectedComment).Result;

            Assert.IsNotNull(updatedTimelog);
            Assert.AreEqual(expectedComment, updatedTimelog.Comment);

            //TODO: test other parameters
        }
        async Task <WrikeTimelog> IWrikeTimelogsClient.CreateAsync(WrikeTimelog newTimelog, bool?plainText)
        {
            if (newTimelog == null)
            {
                throw new ArgumentNullException(nameof(newTimelog));
            }

            var requestUri = $"tasks/{newTimelog.TaskId}/timelogs";

            var postDataBuilder = new WrikeFormUrlEncodedContentBuilder()
                                  .AddParameter("comment", newTimelog.Comment)
                                  .AddParameter("hours", newTimelog.Hours)
                                  .AddParameter("trackedDate", newTimelog.TrackedDate.ToString("yyyy-MM-dd"))
                                  .AddParameter("plainText", plainText)
                                  .AddParameter("categoryId", newTimelog.CategoryId);

            var postContent = postDataBuilder.GetContent();
            var response    = await SendRequest <WrikeTimelog>(requestUri, HttpMethods.Post, postContent).ConfigureAwait(false);

            return(GetReponseDataFirstItem(response));
        }