Get rid of DataQueryObject
This commit is contained in:
parent
ee5d91c61d
commit
a8e740f4fd
|
@ -1,35 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace BlueWest.Data
|
|
||||||
{
|
|
||||||
public sealed class DataQueryResult<T>
|
|
||||||
{
|
|
||||||
public readonly T Value;
|
|
||||||
public bool HasValue;
|
|
||||||
public string Message;
|
|
||||||
|
|
||||||
public DataQueryResult(T value, bool success = true, string message = "")
|
|
||||||
{
|
|
||||||
Value = value;
|
|
||||||
HasValue = success;
|
|
||||||
Message = message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
internal sealed class DataQueryResult
|
|
||||||
{
|
|
||||||
public readonly object Value;
|
|
||||||
public bool HasValue;
|
|
||||||
public string Message;
|
|
||||||
|
|
||||||
public DataQueryResult(object value, bool success = true, string message = "")
|
|
||||||
{
|
|
||||||
Value = value;
|
|
||||||
HasValue = success;
|
|
||||||
Message = message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -15,7 +15,7 @@ namespace BlueWest.Data
|
||||||
[MapFrom(typeof(UserUpdateDto))]
|
[MapFrom(typeof(UserUpdateDto))]
|
||||||
public partial class User
|
public partial class User
|
||||||
{
|
{
|
||||||
[Key(1)] public TimeSpan Id { get; }
|
[Key(1)] public TimeSpan Id { get; } = TimeSpan.Zero;
|
||||||
[Key(2)] public string Name { get; set; }
|
[Key(2)] public string Name { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,6 +28,11 @@ namespace BlueWest.Data
|
||||||
FinanceTransactions = financeTransactions;
|
FinanceTransactions = financeTransactions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public User()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void AddTransaction(FinanceTransaction financeTransaction)
|
public void AddTransaction(FinanceTransaction financeTransaction)
|
||||||
{
|
{
|
||||||
FinanceTransactions.Add(FinanceTransactions.Count + 1, financeTransaction);
|
FinanceTransactions.Add(FinanceTransactions.Count + 1, financeTransaction);
|
||||||
|
|
|
@ -31,10 +31,10 @@ namespace BlueWest.Data
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataQueryResult<User> GetUserById(int id)
|
public User GetUserById(int id)
|
||||||
{
|
{
|
||||||
if (Users.ContainsKey(id)) return new DataQueryResult<User>(Users[id], true);
|
if (Users.ContainsKey(id)) return Users[id];
|
||||||
return new DataQueryResult<User>(null, false, "Can't find a user with the provided id.");
|
return new User();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool RemoveUser(int userId)
|
public bool RemoveUser(int userId)
|
||||||
|
@ -53,27 +53,27 @@ namespace BlueWest.Data
|
||||||
return Users.Contains(userId);
|
return Users.Contains(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataQueryResult<User> UpdateUser(int userId, UserUpdateDto userUpdate)
|
public User UpdateUser(int userId, UserUpdateDto userUpdate)
|
||||||
{
|
{
|
||||||
if (Users.ContainsKey(userId))
|
if (Users.ContainsKey(userId))
|
||||||
{
|
{
|
||||||
Users[userId].Update(userUpdate);
|
Users[userId].Update(userUpdate);
|
||||||
return new DataQueryResult<User>(Users[userId], true);
|
return Users[userId];
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DataQueryResult<User>(null, false);
|
return new User();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal bool UserHasTransaction(int userId, int transactionId) => HasUser(userId) && Users[userId].FinanceTransactions.Contains(transactionId);
|
internal bool UserHasTransaction(int userId, int transactionId) => HasUser(userId) && Users[userId].FinanceTransactions.Contains(transactionId);
|
||||||
|
|
||||||
public DataQueryResult<FinanceTransaction> GetTransactionById(int userId, int transactionId)
|
public FinanceTransaction GetTransactionById(int userId, int transactionId)
|
||||||
{
|
{
|
||||||
if(!HasUser(userId)) return new DataQueryResult<FinanceTransaction>(new FinanceTransaction(), false, "Can't find a user with the provided id.");
|
if(!HasUser(userId)) return new FinanceTransaction();
|
||||||
|
|
||||||
if (UserHasTransaction(userId, transactionId)) return new DataQueryResult<FinanceTransaction>(Users[userId].FinanceTransactions[transactionId]);
|
if (UserHasTransaction(userId, transactionId)) return Users[userId].FinanceTransactions[transactionId];
|
||||||
|
|
||||||
return new DataQueryResult<FinanceTransaction>(new FinanceTransaction(), false, "Can't find a transaction with the provided id.");
|
return new FinanceTransaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
public User AddUser(int userId, UserUpdateDto userUpdateDto)
|
public User AddUser(int userId, UserUpdateDto userUpdateDto)
|
||||||
|
@ -97,18 +97,17 @@ namespace BlueWest.Data
|
||||||
|
|
||||||
const string NoIdError = "No transaction was found with the specified id";
|
const string NoIdError = "No transaction was found with the specified id";
|
||||||
|
|
||||||
public DataQueryResult<FinanceTransaction> AddFinanceTransaction(int userId, FinanceTransactionInsertDto financeTransactionDto)
|
public FinanceTransaction AddFinanceTransaction(int userId, FinanceTransactionInsertDto financeTransactionDto)
|
||||||
{
|
{
|
||||||
if (Users.ContainsKey(userId))
|
if (Users.ContainsKey(userId))
|
||||||
{
|
{
|
||||||
var now = TimeSpan.FromTicks(DateTime.Now.Ticks);
|
var now = TimeSpan.FromTicks(DateTime.Now.Ticks);
|
||||||
var financeTransaction = new FinanceTransaction(financeTransactionDto, now, Users[userId].Id);
|
var financeTransaction = new FinanceTransaction(financeTransactionDto, now, Users[userId].Id);
|
||||||
Users[userId].AddTransaction(financeTransaction);
|
Users[userId].AddTransaction(financeTransaction);
|
||||||
return new DataQueryResult<FinanceTransaction>(financeTransaction);
|
return financeTransaction;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DataQueryResult<FinanceTransaction>(new FinanceTransaction(), false,
|
return new FinanceTransaction();
|
||||||
"no transaction with the provided id");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -33,12 +33,11 @@ namespace BlueWest.WebApi.Controllers
|
||||||
[HttpGet("{userId}", Name = nameof(GetUserById))]
|
[HttpGet("{userId}", Name = nameof(GetUserById))]
|
||||||
public ActionResult GetUserById(int userId)
|
public ActionResult GetUserById(int userId)
|
||||||
{
|
{
|
||||||
DataQueryResult<User> user = MemoryData.GetUserById(userId);
|
var user = MemoryData.GetUserById(userId);
|
||||||
|
|
||||||
if (user.HasValue)
|
if (user.Id != TimeSpan.Zero)
|
||||||
{
|
{
|
||||||
return Ok(user.Value);
|
return Ok(user);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new NotFoundResult();
|
return new NotFoundResult();
|
||||||
|
@ -62,9 +61,9 @@ namespace BlueWest.WebApi.Controllers
|
||||||
{
|
{
|
||||||
var user = MemoryData.UserList.GetUserById(userId);
|
var user = MemoryData.UserList.GetUserById(userId);
|
||||||
|
|
||||||
if(!user.HasValue) return new NotFoundResult();
|
if(user.Id == TimeSpan.Zero) return new NotFoundResult();
|
||||||
|
|
||||||
var transactions = user?.Value.FinanceTransactions;
|
var transactions = user.FinanceTransactions;
|
||||||
|
|
||||||
FinanceTransaction? transaction = transactions?.Values.ToImmutableArray().FirstOrNull(t => t.CreationDate == transactionId);
|
FinanceTransaction? transaction = transactions?.Values.ToImmutableArray().FirstOrNull(t => t.CreationDate == transactionId);
|
||||||
|
|
||||||
|
@ -117,9 +116,9 @@ namespace BlueWest.WebApi.Controllers
|
||||||
[HttpPost("{userId}/transactions")]
|
[HttpPost("{userId}/transactions")]
|
||||||
public ActionResult PostTransaction(int userId, FinanceTransactionInsertDto financeTransaction)
|
public ActionResult PostTransaction(int userId, FinanceTransactionInsertDto financeTransaction)
|
||||||
{
|
{
|
||||||
DataQueryResult<FinanceTransaction> result = MemoryData.UserList.AddFinanceTransaction(userId, financeTransaction);
|
FinanceTransaction result = MemoryData.UserList.AddFinanceTransaction(userId, financeTransaction);
|
||||||
|
|
||||||
if(result.HasValue) return Ok(result.Value);
|
if(result.UserId != TimeSpan.Zero) return Ok(result);
|
||||||
|
|
||||||
return new BadRequestResult();
|
return new BadRequestResult();
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace PerformanceSolution.Data
|
||||||
UserList ??= new UserList(new FastDictionary<int, User>());
|
UserList ??= new UserList(new FastDictionary<int, User>());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DataQueryResult<FinanceTransaction> GetTransactionById(int userId, int transactionId) => UserList.GetTransactionById(userId, transactionId);
|
public static FinanceTransaction GetTransactionById(int userId, int transactionId) => UserList.GetTransactionById(userId, transactionId);
|
||||||
|
|
||||||
|
|
||||||
private static void SaveUserList() => SaveUserList(UserList);
|
private static void SaveUserList() => SaveUserList(UserList);
|
||||||
|
@ -67,7 +67,7 @@ namespace PerformanceSolution.Data
|
||||||
return new UserList(list);
|
return new UserList(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DataQueryResult<User> GetUserById(int userId)
|
public static User GetUserById(int userId)
|
||||||
{
|
{
|
||||||
return UserList.GetUserById(userId);
|
return UserList.GetUserById(userId);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue