HotFix: DateTimeLog file missing from master branch.

This commit is contained in:
Bobbie Hodgetts
2019-07-12 11:36:30 +01:00
parent 116aedb897
commit a342f8adc6

View File

@@ -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);
}
}
/// <summary>
/// Gets the Date and Time by a unique string.
/// </summary>
/// <param name="logDateTimeId">Unique string</param>
/// <returns>UTC DateTime or null</returns>
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.");
}
}
}
}
}
}