diff --git a/src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs b/src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs
new file mode 100644
index 0000000..e222e3f
--- /dev/null
+++ b/src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs
@@ -0,0 +1,136 @@
+using System;
+using System.Collections.Generic;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace bnhtrade.Core.Data.Database.Log
+{
+ public class DateTimeLog : Connection
+ {
+ public DateTimeLog(string sqlConnectionString) : base(sqlConnectionString)
+ {
+ }
+ public DateTime GetBusinessStartUtc
+ {
+ get
+ {
+ DateTime businessStart = new DateTime(2014, 09, 01);
+ return DateTime.SpecifyKind(businessStart, DateTimeKind.Utc);
+ }
+ }
+ ///
+ /// Gets the Date and Time by a unique string.
+ ///
+ /// Unique string
+ /// UTC DateTime or null
+ public DateTime GetDateTimeUtc(string logDateTimeId)
+ {
+ using (SqlConnection conn = new SqlConnection(sqlConnectionString))
+ {
+ conn.Open();
+
+ using (SqlCommand cmd = new SqlCommand(@"
+ SELECT
+ DateTimeUtc
+ FROM
+ tblLogDateTime
+ WHERE
+ LogDateTimeID = @logDateTimeID
+ ", conn))
+ {
+ cmd.Parameters.AddWithValue("@logDateTimeID", logDateTimeId);
+
+ object obj = cmd.ExecuteScalar();
+
+ if (obj == null || obj == DBNull.Value)
+ {
+ throw new Exception("Id not found.");
+ }
+ else
+ {
+ DateTime returnDt = (DateTime)obj;
+ return DateTime.SpecifyKind(returnDt, DateTimeKind.Utc);
+ }
+ }
+ }
+ }
+ public void SetDateTimeUtc(string logDateTimeID, DateTime utcDateTime)
+ {
+ utcDateTime = DateTime.SpecifyKind(utcDateTime, DateTimeKind.Utc);
+
+ using (SqlConnection conn = new SqlConnection(sqlConnectionString))
+ {
+ conn.Open();
+
+ using (SqlCommand cmd = new SqlCommand(@"
+ UPDATE tblLogDateTime
+ SET
+ DateTimeUtc = @utcDateTime
+ ,RecordModified = @recordModified
+ WHERE
+ LogDateTimeID = @logDateTimeID
+ ", conn))
+ {
+ cmd.Parameters.AddWithValue("@utcDateTime", utcDateTime.ToUniversalTime());
+ cmd.Parameters.AddWithValue("@recordModified", DateTime.UtcNow.ToUniversalTime());
+ cmd.Parameters.AddWithValue("@logDateTimeID", logDateTimeID);
+
+ int count = cmd.ExecuteNonQuery();
+
+ if (count == 0)
+ {
+ throw new Exception("Error, failed to update record.");
+ }
+ }
+ }
+ }
+ public void NewDateTimeUtc(string LogDateTimeId, DateTime utcDateTime, string comments = null)
+ {
+ if (string.IsNullOrWhiteSpace(LogDateTimeId))
+ { throw new Exception("Invalid LogDateTimeID"); }
+
+ utcDateTime = DateTime.SpecifyKind(utcDateTime, DateTimeKind.Utc);
+
+ using (SqlConnection conn = new SqlConnection(sqlConnectionString))
+ {
+ conn.Open();
+
+ using (SqlCommand cmd = new SqlCommand(@"
+ INSERT INTO tblLogDateTime (
+ LogDateTimeID
+ ,DateTimeUtc
+ ,Comments
+ ,RecordModified
+ ,RecordCreated
+ )
+ VALUES (
+ @logDateTimeId
+ ,@utcDateTime
+ ,@comments
+ ,@recordModified
+ ,@recordCreated
+ )
+ ", conn))
+ {
+ var nowTime = DateTime.UtcNow;
+ cmd.Parameters.AddWithValue("@logDateTimeId", LogDateTimeId);
+ cmd.Parameters.AddWithValue("@utcDateTime", utcDateTime);
+ if (string.IsNullOrWhiteSpace(comments)) { cmd.Parameters.AddWithValue("@comments", DBNull.Value); }
+ else { cmd.Parameters.AddWithValue("@comments", comments); }
+ cmd.Parameters.AddWithValue("@recordModified", nowTime.ToUniversalTime());
+ cmd.Parameters.AddWithValue("@recordCreated", nowTime.ToUniversalTime());
+
+ int count = cmd.ExecuteNonQuery();
+
+ if (count == 0)
+ {
+ throw new Exception("Error updating, no records where effected.");
+ }
+ }
+ }
+ }
+
+ }
+}
\ No newline at end of file