Skip to content

Commit

Permalink
Add updated documentation for GetEmployeesRaw + a few API samples
Browse files Browse the repository at this point in the history
  • Loading branch information
Søren Øxenhave committed Dec 12, 2018
1 parent 11b1773 commit d14753d
Show file tree
Hide file tree
Showing 10 changed files with 171 additions and 9 deletions.
Binary file modified Deploy/TimeLog.ReportingApi.SDK.dll
Binary file not shown.
Binary file modified Deploy/TimeLog.TransactionalApi.SDK.dll
Binary file not shown.
12 changes: 5 additions & 7 deletions Deploy/TimeLog.TransactionalApi.SDK.dll.config
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@
<binding name="BasicHttpBinding_SecurityService">
<security mode="Transport" />
</binding>
<binding name="BasicHttpBinding_ProjectManagementService">
<security mode="Transport" />
</binding>
<binding name="BasicHttpBinding_ProjectManagementService" />
<binding name="BasicHttpBinding_ICRMService" />
<binding name="BasicHttpBinding_SalaryService">
<security mode="Transport" />
Expand Down Expand Up @@ -49,16 +47,16 @@
<endpoint address="https://app4.timelog.com/610patchreference/WebServices/Invoicing/V1_1/InvoicingServiceSecure.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_InvoicingService"
contract="InvoicingService.InvoicingService" name="BasicHttpBinding_InvoicingService" />
<endpoint address="http://localhost/TimeLog.TLP.Web/WebServices/ProjectManagement/V1_7/ProjectManagementService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ProjectManagementService"
contract="ProjectManagementService.ProjectManagementService"
name="BasicHttpBinding_ProjectManagementService" />
<endpoint address="http://localhost/TLP/WebServices/Registration/V1_0/TimeTrackingService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_TimeTrackingService"
contract="TimeTrackingService.TimeTrackingService" name="BasicHttpBinding_TimeTrackingService" />
<endpoint address="https://app3.timelog.com/local/WebServices/Organisation/V1_7/OrganisationServiceSecure.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_OrganisationService"
contract="OrganisationService.OrganisationService" name="BasicHttpBinding_OrganisationService" />
<endpoint address="https://app3.timelog.com/local/WebServices/ProjectManagement/V1_7/ProjectManagementServiceSecure.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ProjectManagementService"
contract="ProjectManagementService.ProjectManagementService"
name="BasicHttpBinding_ProjectManagementService" />
</client>
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/></startup></configuration>
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,6 @@
<tlp:EmployeeTypeName>Consultant</tlp:EmployeeTypeName>
<tlp:EmployeeNo>12345</tlp:EmployeeNo>
<tlp:Username>SYSTEM</tlp:Username>
<tlp:CostPrice>1200.00</tlp:CostPrice>
</tlp:Employee>
</tlp:Employees>
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
<xsd:element name="EmployeeTypeName" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="EmployeeNo" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="Username" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="CostPrice" type="xsd:decimal" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="ID" type="xsd:positiveInteger" use="required" />
</xsd:complexType>
Expand Down
14 changes: 13 additions & 1 deletion TimeLog.ApiConsoleApp/ExternalKeysOnProjectAndTasks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ public static void Consume()
IEnumerable<string> messages;
if (SecurityHandler.Instance.TryAuthenticate(out messages))
{
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\TryAuthenticate.txt");

if (Logger.IsInfoEnabled)
{
Logger.Info("Sucessfully authenticated on transactional API");
Expand Down Expand Up @@ -150,10 +152,15 @@ public static void Consume()
TaskTypeID = 328
};

_task1.ExternalKeys = new[] { new ExternalSystemContext { SystemName = "Jira", ExternalID = "ENDK-1" } };
_task1.ExternalKeys = new[]
{
new ExternalSystemContext { SystemName = "Jira", ExternalID = "ENDK-1" },
new ExternalSystemContext { SystemName = "OEBS", ExternalID = "200542" }
};
_task1.IsExternalKeysLoaded = true;

var _createTaskResult = ProjectManagementHandler.Instance.ProjectManagementClient.CreateTask(_task1, _project.Item.ProjectID, ProjectManagementHandler.Instance.Token);
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\CreateTask.txt");
if (_createTaskResult.ResponseState != ExecutionStatus.Success)
{
foreach (var _apiMessage in _createTaskResult.Messages)
Expand Down Expand Up @@ -183,6 +190,11 @@ public static void Consume()
Logger.DebugFormat("Task created (ID: {0})", _task.Item.TaskID);
}

var _getByID = ProjectManagementHandler.Instance.ProjectManagementClient.GetTaskByID1(_task.Item.TaskID, true, ProjectManagementHandler.Instance.Token);

var _updateTaskResult = ProjectManagementHandler.Instance.ProjectManagementClient.UpdateTask(_task.Item, _project.Item.ProjectID, ProjectManagementHandler.Instance.Token);
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\UpdateTask.txt");

var _getTaskByExternalKeyResult = ProjectManagementHandler.Instance.ProjectManagementClient.GetTaskByExternalKey("ENDK-1", "Jira", ProjectManagementHandler.Instance.Token);
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\GetTaskByExternalKey.txt");
if (_getTaskByExternalKeyResult.ResponseState != ExecutionStatus.Success)
Expand Down
146 changes: 146 additions & 0 deletions TimeLog.ApiConsoleApp/ManipulateExternalKeys.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
namespace TimeLog.ApiConsoleApp
{
using System;
using System.Collections.Generic;
using System.Linq;

using log4net;

using TimeLog.TransactionalApi.SDK;
using TimeLog.TransactionalApi.SDK.ProjectManagementService;
using TimeLog.TransactionalApi.SDK.RawHelper;

/// <summary>
/// Template class for consuming the transactional API
/// </summary>
public class ManipulateExternalKeys
{
private static readonly ILog Logger = LogManager.GetLogger(typeof(ManipulateExternalKeys));

public static void Consume()
{
ProjectManagementHandler.Instance.CollectRawRequestResponse = true;
SecurityHandler.Instance.CollectRawRequestResponse = true;

IEnumerable<string> messages;
if (SecurityHandler.Instance.TryAuthenticate(out messages))
{
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\TryAuthenticate.txt");

if (Logger.IsInfoEnabled)
{
Logger.Info("Sucessfully authenticated on transactional API");
}

var _getTaskByID1 = ProjectManagementHandler.Instance.ProjectManagementClient.GetTaskByID1(22627, true, ProjectManagementHandler.Instance.Token);
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\GetTaskByID1.txt");
if (_getTaskByID1.ResponseState != ExecutionStatus.Success)
{
foreach (var _apiMessage in _getTaskByID1.Messages)
{
if (Logger.IsErrorEnabled)
{
Logger.Error(_apiMessage.Message);
}
}

return;
}

var _task = _getTaskByID1.Return.FirstOrDefault();
if (_task == null)
{
if (Logger.IsWarnEnabled)
{
Logger.Warn("No task fetched");
}

return;
}

if (Logger.IsDebugEnabled)
{
Logger.DebugFormat("Task fetched (ID: {0})", _task.TaskID);
}

_task.ExternalKeys = new[]
{
new ExternalSystemContext { SystemName = "Jira", ExternalID = "ENDK-1" },
new ExternalSystemContext { SystemName = "OEBS", ExternalID = "200542" }
};
_task.IsExternalKeysLoaded = true;

var _updateTaskResult = ProjectManagementHandler.Instance.ProjectManagementClient.UpdateTask(_task, _task.Details.ProjectHeader.ID, ProjectManagementHandler.Instance.Token);
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\UpdateTask.txt");

if (_updateTaskResult.ResponseState != ExecutionStatus.Success)
{
foreach (var _apiMessage in _updateTaskResult.Messages)
{
if (Logger.IsErrorEnabled)
{
Logger.Error(_apiMessage.Message);
}
}

return;
}

var _taskUpdated = _updateTaskResult.Return.FirstOrDefault();
if (_taskUpdated == null)
{
if (Logger.IsWarnEnabled)
{
Logger.Warn("No task updated");
}

return;
}

if (Logger.IsDebugEnabled)
{
Logger.DebugFormat("Task updated (ID: {0})", _taskUpdated.Item.TaskID);
}

var _getTaskByExternalKeyResult = ProjectManagementHandler.Instance.ProjectManagementClient.GetTaskByExternalKey("ENDK-1", "Jira", ProjectManagementHandler.Instance.Token);
RawMessageHelper.Instance.SaveRecentRequestResponsePair("c:\\temp\\GetTaskByExternalKey.txt");
if (_getTaskByExternalKeyResult.ResponseState != ExecutionStatus.Success)
{
foreach (var _apiMessage in _getTaskByExternalKeyResult.Messages)
{
if (Logger.IsErrorEnabled)
{
Logger.Error(_apiMessage.Message);
}
}

return;
}

var _taskByExternalKey = _getTaskByExternalKeyResult.Return.FirstOrDefault();
if (_taskByExternalKey == null)
{
if (Logger.IsWarnEnabled)
{
Logger.Warn("No task fetched");
}

return;
}

if (Logger.IsDebugEnabled)
{
Logger.DebugFormat("Task by external key (ID: {0})", _taskByExternalKey.TaskID);
}
}
else
{
if (Logger.IsWarnEnabled)
{
Logger.Warn("Failed to authenticate to transactional API");
Logger.Warn(string.Join(",", messages));
}
}
}
}
}
2 changes: 1 addition & 1 deletion TimeLog.ApiConsoleApp/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public static void Main(string[] args)
// ManipulateTasks.Consume();
// InsertWork.Consume();
// CreateProjectTransactionalApi2.Consume();
ExternalKeysOnProjectAndTasks.Consume();
ManipulateExternalKeys.Consume();
}
catch (Exception ex)
{
Expand Down
1 change: 1 addition & 0 deletions TimeLog.ApiConsoleApp/TimeLog.ApiConsoleApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
<Compile Include="ConsumeCsvFile.cs" />
<Compile Include="ConsumeReportingApi.cs" />
<Compile Include="ExternalKeysOnProjectAndTasks.cs" />
<Compile Include="ManipulateExternalKeys.cs" />
<Compile Include="FetchProjectAndTasks.cs" />
<Compile Include="CreateProjectsForCustomersInSql.cs" />
<Compile Include="CreateProjectsForCustomersInCsv.cs" />
Expand Down
3 changes: 3 additions & 0 deletions TimeLog.TransactionalApi.SDK/RawHelper/RawMessageHelper.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
namespace TimeLog.TransactionalApi.SDK.RawHelper
{
using System;
using System.IO;
using System.ServiceModel.Channels;

Expand Down Expand Up @@ -66,6 +67,8 @@ public void SaveRecentRequestResponsePair(string path)
File.Delete(path);
}

File.AppendAllText(path, "<!---- " + DateTime.Now.ToString("O") + " ---->\r\n");
File.AppendAllText(path, "<!---- " + SettingsHandler.Instance.Url + " ---->\r\n");
File.AppendAllText(path, "<!--------------- REQUEST ------------------->\r\n\r\n");
File.AppendAllText(path, this.Request);
File.AppendAllText(path, "\r\n\r\n<!--------------- RESPONSE ------------------->\r\n\r\n");
Expand Down

0 comments on commit d14753d

Please sign in to comment.