mirror of
https://github.com/stokebob/bnhtrade.git
synced 2026-03-19 14:37:16 +00:00
HotFix: DateTimeLog file missing from master branch.
This commit is contained in:
136
src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs
Normal file
136
src/bnhtrade.Core/Data/Database/Log/DateTimeLog.cs
Normal 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.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user