Пример #1
0
        /// <summary>
        /// Creates or finds workspace and return workspace id
        /// </summary>
        public static async Task <string> CreateOrFindWorkspaceAsync(ClockifyClient client, string workspaceName)
        {
            var workspaceResponse = await client.CreateWorkspaceAsync(new WorkspaceRequest { Name = workspaceName });

            string workspaceId;

            // workspaceResponse.IsSuccessful.Should().BeTrue();

            if (workspaceResponse.IsSuccessful)
            {
                workspaceId = workspaceResponse.Data.Id;
            }
            else if (WorkspaceAlreadyExist(workspaceResponse))
            {
                var workspacesResponse = await client.GetWorkspacesAsync();

                var workspace = workspacesResponse.Data.SingleOrDefault(dto => dto.Name == workspaceName);
                if (workspace == null)
                {
                    throw new NullReferenceException($"Workspace {workspaceName} do not exist.");
                }
                return(workspace.Id);
            }
            else
            {
                throw new InvalidOperationException($"Cannot create or find workspace: {workspaceResponse.Content}");
            }


            return(workspaceId);
        }
Пример #2
0
 public ClockifyProject(string id, string name, bool a, ClockifyWorkspace ws, ClockifyClient client)
 {
     ID        = id;
     Name      = name;
     Workspace = ws;
     Client    = client;
     Archived  = a;
 }
Пример #3
0
        /// <summary>
        /// Creates client
        /// </summary>
        public static async Task <ClientDto> CreateTestClientAsync(ClockifyClient client, string workspaceName)
        {
            var clientRequest = new ClientRequest {
                Name = "GetDetailedReportAsync " + Guid.NewGuid()
            };

            var createClientResponse = await client.CreateClientAsync(workspaceName, clientRequest);

            createClientResponse.IsSuccessful.Should().BeTrue();
            return(createClientResponse.Data);
        }
Пример #4
0
        public static async Task <IRestResponse> ArchiveAndDeleteProject(this ClockifyClient client, string workspaceId, string projectId)
        {
            var projectUpdateRequest = new ProjectUpdateRequest {
                Archived = true
            };
            var archiveProjectResponse = await client.UpdateProjectAsync(workspaceId, projectId, projectUpdateRequest);

            if (!archiveProjectResponse.IsSuccessful)
            {
                return(archiveProjectResponse);
            }
            return(await client.DeleteProjectAsync(workspaceId, projectId));
        }
Пример #5
0
        public static async Task <TimeEntryDtoImpl> CreateTestTimeEntryAsync(ClockifyClient client, string workspaceId, DateTimeOffset start, string projectId)
        {
            var timeEntryRequest = new TimeEntryRequest {
                Start     = start,
                End       = start.AddSeconds(30),
                ProjectId = projectId
            };

            var createResult = await client.CreateTimeEntryAsync(workspaceId, timeEntryRequest);

            createResult.IsSuccessful.Should().BeTrue();
            return(createResult.Data);
        }
Пример #6
0
        public static async Task <ProjectDtoImpl> CreateTestProjectAsync(ClockifyClient client, string workspaceName, string clientId)
        {
            var projectRequest = new ProjectRequest {
                Name       = "GetDetailedReportAsync " + Guid.NewGuid(),
                Color      = "#FF00FF",
                HourlyRate = new HourlyRateRequest {
                    Amount = 1234
                },
                ClientId = clientId
            };

            var createProject = await client.CreateProjectAsync(workspaceName, projectRequest);

            createProject.IsSuccessful.Should().BeTrue();
            createProject.Data.Should().NotBeNull();

            ProjectDtoImpl project = createProject.Data;

            return(project);
        }
Пример #7
0
 public ReportTests()
 {
     _client = new ClockifyClient();
 }
Пример #8
0
 public TemplateTests()
 {
     _client = new ClockifyClient();
 }
Пример #9
0
 public TagTests()
 {
     _client = new ClockifyClient();
 }
Пример #10
0
 public ClientsTests()
 {
     _client = new ClockifyClient();
 }
Пример #11
0
 public TimeEntryTests()
 {
     _client = new ClockifyClient();
 }
Пример #12
0
 public ProjectTests()
 {
     _client = new ClockifyClient();
 }
Пример #13
0
 public UserTests()
 {
     _client = new ClockifyClient();
 }
Пример #14
0
 public WorkspaceTests()
 {
     _client = new ClockifyClient();
 }
 public void Setup()
 {
     _client = new ClockifyClient();
 }