Add support for card reader to provide its own date time.

#103
This commit is contained in:
chris.watts90@outlook.com 2019-09-11 17:37:26 +01:00
parent 4c99dfba71
commit 1943895eec
3 changed files with 1066 additions and 1049 deletions

View File

@ -1,114 +1,116 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Interfaces namespace Interfaces
{ {
public interface IRepository public interface IRepository
{ {
/// <summary> /// <summary>
/// Get a list of Users /// Get a list of Users
/// </summary> /// </summary>
/// <returns> /// <returns>
/// Returns <see cref="UserList"/> with full list of users, /// Returns <see cref="UserList"/> with full list of users,
/// plus a total user count. Pagination options are supported. /// plus a total user count. Pagination options are supported.
/// </returns> /// </returns>
UserList GetUsers(int pageNumber = -1, int pageSize = -1, int groupId = -1); UserList GetUsers(int pageNumber = -1, int pageSize = -1, int groupId = -1);
/// <summary> /// <summary>
/// Search the user list for the following string /// Search the user list for the following string
/// </summary> /// </summary>
/// <param name="searchParam">string to search the user store for.</param> /// <param name="searchParam">string to search the user store for.</param>
/// <returns> /// <returns>
/// Returns <see cref="UserList"/> with full list of users, /// Returns <see cref="UserList"/> with full list of users,
/// plus a total user count. Pagination options are supported. /// plus a total user count. Pagination options are supported.
/// </returns> /// </returns>
UserList Search(string searchParam); UserList Search(string searchParam);
/// <summary> /// <summary>
/// Get details about a single user in the system base on their Id /// Get details about a single user in the system base on their Id
/// </summary> /// </summary>
/// <param name="id"> /// <param name="id">
/// integer data type, the Id of the User to get details about.</param> /// integer data type, the Id of the User to get details about.</param>
/// <returns> /// <returns>
/// <see cref="User"/> object with full details, /// <see cref="User"/> object with full details,
/// including full <see cref="Identifier"/> /// including full <see cref="Identifier"/>
/// </returns> /// </returns>
User GetUser(int id); User GetUser(int id);
/// <summary> /// <summary>
/// Get a list of the timelogs available for the specified user /// Get a list of the timelogs available for the specified user
/// for the current Calendar Week /// for the current Calendar Week
/// </summary> /// </summary>
/// <param name="userId"> /// <param name="userId">
/// integer data type, the Id of the user to get time logs for /// integer data type, the Id of the user to get time logs for
/// </param> /// </param>
/// <returns> /// <returns>
/// <see cref="TimeLogList"/> with nested <see cref="TimeLog"/> objects /// <see cref="TimeLogList"/> with nested <see cref="TimeLog"/> objects
/// for the current calendar week /// for the current calendar week
/// </returns> /// </returns>
TimeLogList GetTimeLogs(int userId); TimeLogList GetTimeLogs(int userId);
/// <summary> /// <summary>
/// Get a list of the timelogs available for the specified user /// Get a list of the timelogs available for the specified user
/// for the specified calendar week /// for the specified calendar week
/// </summary> /// </summary>
/// <param name="userId"> /// <param name="userId">
/// integer data type, the Id of the user to get time logs for /// integer data type, the Id of the user to get time logs for
/// </param> /// </param>
/// <param name="selectedDate"> /// <param name="selectedDate">
/// datetime data type, the date to receive time logs for (will scope out to calendar week). /// datetime data type, the date to receive time logs for (will scope out to calendar week).
/// </param> /// </param>
/// <returns> /// <returns>
/// <see cref="TimeLogList"/> with nested <see cref="TimeLog"/> objects /// <see cref="TimeLogList"/> with nested <see cref="TimeLog"/> objects
/// for the current calendar week /// for the current calendar week
/// </returns> /// </returns>
TimeLogList GetTimeLogs(int userId, DateTime selectedDate); TimeLogList GetTimeLogs(int userId, DateTime selectedDate);
/// <summary> /// <summary>
/// Get a full list of Identifiers which are not associated to a user. /// Get a full list of Identifiers which are not associated to a user.
/// </summary> /// </summary>
/// <returns> /// <returns>
/// <see cref="IdentifierList"/> with nested <see cref="Identifier"/> list /// <see cref="IdentifierList"/> with nested <see cref="Identifier"/> list
/// </returns> /// </returns>
IdentifierList GetUnassignedIdentifierList(); IdentifierList GetUnassignedIdentifierList();
/// <summary> /// <summary>
/// Remove all unassigned identifiers from the system. /// Remove all unassigned identifiers from the system.
/// </summary> /// </summary>
void ClearUnassignedIdentifiers(); void ClearUnassignedIdentifiers();
/// <summary> /// <summary>
/// Update a user in the system with the new values. /// Update a user in the system with the new values.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// If the user object passed does not exist, it will be created. /// If the user object passed does not exist, it will be created.
/// </remarks> /// </remarks>
/// <param name="user"> /// <param name="user">
/// <see cref="User"/> object detailing the new properties to assign to the user. /// <see cref="User"/> object detailing the new properties to assign to the user.
/// The Id Field should not be changed, or should be -1 for new users. /// The Id Field should not be changed, or should be -1 for new users.
/// </param> /// </param>
/// <param name="userId"> /// <param name="userId">
/// int - ref param, value will be the UserId of the inserted or updated user /// int - ref param, value will be the UserId of the inserted or updated user
/// </param> /// </param>
/// <returns> /// <returns>
/// <see cref="OperationResponse"/> to indicate procedure status. /// <see cref="OperationResponse"/> to indicate procedure status.
/// </returns> /// </returns>
OperationResponse UpdateUser(User user, out int userId); OperationResponse UpdateUser(User user, out int userId);
/// <summary> /// <summary>
/// Create a new TimeLog Event in the repository. /// Create a new TimeLog Event in the repository.
/// </summary> /// </summary>
/// <param name="identifier"> /// <param name="identifier">
/// <see cref="Identifier"/> object with the Unique Id triggering the event /// <see cref="Identifier"/> object with the Unique Id triggering the event
/// </param> /// </param>
/// <param name="logId">The resultant Id of the inserted TimeLog</param> /// <param name="logId">The resultant Id of the inserted TimeLog</param>
/// <returns> /// <param name="logTime">Optional - To set the log time of the swipe.
/// <see cref="OperationResponse"/> to indicate procedure status. /// <remarks>Particularly useful for buffering logs in nodes if they cannot contact server for whatever reason to minimise data loss</remarks></param>
/// </returns> /// <returns>
LogEventResponse LogEventTime(Identifier identifier, out int logId); /// <see cref="OperationResponse"/> to indicate procedure status.
/// </returns>
OperationResponse CreateGroup(Group group, out int groupId); LogEventResponse LogEventTime(Identifier identifier, out int logId, DateTime logTime = default(DateTime));
List<Group> GetGroups(int userId = -1);
Group GetGroup(int groupId); OperationResponse CreateGroup(Group group, out int groupId);
OperationResponse UpdateGroup(Group group); List<Group> GetGroups(int userId = -1);
OperationResponse DeleteGroup(int groupId); Group GetGroup(int groupId);
OperationResponse UpdateGroup(Group group);
OperationResponse DeleteLog(TimeLog log); OperationResponse DeleteGroup(int groupId);
OperationResponse CreateLog(TimeLog log);
OperationResponse UpdateLog(TimeLog log); OperationResponse DeleteLog(TimeLog log);
} OperationResponse CreateLog(TimeLog log);
} OperationResponse UpdateLog(TimeLog log);
}
}

View File

@ -1,7 +1,10 @@
namespace WindowsDataCenter using System;
{
public class CardData namespace WindowsDataCenter
{ {
public string CardUId { get; set; } public class CardData
} {
public DateTime? UtcTimeStamp { get; set; }
public string CardUId { get; set; }
}
} }