mirror of
https://github.com/stokebob/bnhtrade.git
synced 2026-03-19 06:27:15 +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