diff --git a/DataCenter_Windows/WindowsDataCenter/Interfaces/IRepository.cs b/DataCenter_Windows/WindowsDataCenter/Interfaces/IRepository.cs
index cffe1de..8cf0ea0 100644
--- a/DataCenter_Windows/WindowsDataCenter/Interfaces/IRepository.cs
+++ b/DataCenter_Windows/WindowsDataCenter/Interfaces/IRepository.cs
@@ -1,17 +1,82 @@
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Interfaces
+namespace Interfaces
{
public interface IRepository
{
+ ///
+ /// Get a list of Users
+ ///
+ ///
+ /// Returns with full list of users,
+ /// plus a total user count. Pagination options are supported.
+ ///
UserList GetUsers();
+ ///
+ /// Get details about a single user in the system base on their Id
+ ///
+ ///
+ /// integer data type, the Id of the User to get details about.
+ ///
+ /// object with full details,
+ /// including full
+ ///
User GetUser(int id);
+ ///
+ /// Get a list of the timelogs available for the specified user
+ /// for the current Calendar Week
+ ///
+ ///
+ /// integer data type, the Id of the user to get time logs for
+ ///
+ ///
+ /// with nested objects
+ /// for the current calendar week
+ ///
TimeLogList GetTimeLogs(int userId);
+ ///
+ /// Get a list of the timelogs available for the specified user
+ /// for the specified calendar week
+ ///
+ ///
+ /// integer data type, the Id of the user to get time logs for
+ ///
+ ///
+ /// integer data type, the calendar week to retrieve logs for.
+ ///
+ ///
+ /// with nested objects
+ /// for the current calendar week
+ ///
TimeLogList GetTimeLogs(int userId, int calendarWeek);
- IdentifierList GetUnassignedList();
+ ///
+ /// Get a full list of Identifiers which are not associated to a user.
+ ///
+ ///
+ /// with nested list
+ ///
+ IdentifierList GetUnassignedIdentifierList();
+ ///
+ /// Update a user in the system with the new values.
+ ///
+ ///
+ /// If the user object passed does not exist, it will be created.
+ ///
+ ///
+ /// object detailing the new properties to assign to the user.
+ /// The Id Field should not be changed, or should be -1 for new users.
+ ///
+ ///
+ /// to indicate procedure status.
+ ///
OperationResponse UpdateUser(User user);
+ ///
+ /// Create a new TimeLog Event in the repository.
+ ///
+ ///
+ /// object with the Unique Id triggering the event
+ ///
+ ///
+ /// to indicate procedure status.
+ ///
OperationResponse LogEventTime(Identifier identifier);
}
}
diff --git a/DataCenter_Windows/WindowsDataCenter/Interfaces/Identifier.cs b/DataCenter_Windows/WindowsDataCenter/Interfaces/Identifier.cs
index 1c3b7a6..52766ff 100644
--- a/DataCenter_Windows/WindowsDataCenter/Interfaces/Identifier.cs
+++ b/DataCenter_Windows/WindowsDataCenter/Interfaces/Identifier.cs
@@ -5,5 +5,20 @@
public int Id { get; set; }
public string UniqueId { get; set; }
public bool IsAssociatedToUser { get; set; }
+
+ public override bool Equals(object obj)
+ {
+ var identObj = obj as Identifier;
+ if (identObj == null) return false;
+
+ return identObj.Id == Id
+ && identObj.IsAssociatedToUser == IsAssociatedToUser
+ && identObj.UniqueId == UniqueId;
+ }
+
+ public override int GetHashCode()
+ {
+ return Id.GetHashCode() ^ UniqueId.GetHashCode() ^ IsAssociatedToUser.GetHashCode();
+ }
}
}
\ No newline at end of file
diff --git a/DataCenter_Windows/WindowsDataCenter/Interfaces/OperationResponse.cs b/DataCenter_Windows/WindowsDataCenter/Interfaces/OperationResponse.cs
index 3851a5c..08df027 100644
--- a/DataCenter_Windows/WindowsDataCenter/Interfaces/OperationResponse.cs
+++ b/DataCenter_Windows/WindowsDataCenter/Interfaces/OperationResponse.cs
@@ -4,8 +4,8 @@
{
NONE = 0,
SUCCESS = 1,
- CREATED = 2,
- UPDATED = 3,
+ UPDATED = 2,
+ CREATED = 3,
DELETED = 4,
FAILED = 5
}
diff --git a/DataCenter_Windows/WindowsDataCenter/Interfaces/User.cs b/DataCenter_Windows/WindowsDataCenter/Interfaces/User.cs
index e232428..0b74df6 100644
--- a/DataCenter_Windows/WindowsDataCenter/Interfaces/User.cs
+++ b/DataCenter_Windows/WindowsDataCenter/Interfaces/User.cs
@@ -11,8 +11,13 @@ namespace Interfaces
public int UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
- public int HoursPerWeek { get; set; }
- public int AssociatedIdentifierCount { get; set; }
+ public float HoursPerWeek { get; set; }
+
+ public int AssociatedIdentifierCount
+ {
+ get { return AssociatedIdentifiers.Count; }
+ }
+
public List AssociatedIdentifiers { get; set; }
}
}
\ No newline at end of file
diff --git a/DataCenter_Windows/WindowsDataCenter/Interfaces/UserList.cs b/DataCenter_Windows/WindowsDataCenter/Interfaces/UserList.cs
index 18e57ee..303d7d3 100644
--- a/DataCenter_Windows/WindowsDataCenter/Interfaces/UserList.cs
+++ b/DataCenter_Windows/WindowsDataCenter/Interfaces/UserList.cs
@@ -4,7 +4,11 @@ namespace Interfaces
{
public class UserList
{
- public int UserCount { get; set; }
+ public UserList()
+ {
+ Users = new List();
+ }
+ public int UserCount { get { return Users.Count; } }
public List Users { get; set; }
public int PageSize { get; set; }
public int PageNumber { get; set; }