improvements
This commit is contained in:
parent
e752965d6f
commit
9c2b6bfb44
|
|
@ -5,7 +5,7 @@ using TIAM.Database.DbContexts;
|
||||||
namespace TIAM.Database.Test
|
namespace TIAM.Database.Test
|
||||||
{
|
{
|
||||||
[TestClass]
|
[TestClass]
|
||||||
public class DatabaseTest : DatabaseTestModelBase
|
public class DatabaseTest //: DatabaseTestModelBase<TiamDbContextBase>
|
||||||
{
|
{
|
||||||
|
|
||||||
[TestInitialize]
|
[TestInitialize]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Database.Tests;
|
using AyCode.Database.DataLayers;
|
||||||
|
using AyCode.Database.Tests;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
|
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
|
||||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
|
|
@ -10,7 +11,7 @@ using TIAM.Entities.Users;
|
||||||
namespace TIAM.Database.Test
|
namespace TIAM.Database.Test
|
||||||
{
|
{
|
||||||
[TestClass]
|
[TestClass]
|
||||||
public class UserDalTests : DatabaseTestModelBase
|
public class UserDalTests : DatabaseTestModelBase<UserDbContext>
|
||||||
{
|
{
|
||||||
private Mock<UserDbContext> _mockContext;
|
private Mock<UserDbContext> _mockContext;
|
||||||
private UserDal _userDal;
|
private UserDal _userDal;
|
||||||
|
|
@ -18,109 +19,143 @@ namespace TIAM.Database.Test
|
||||||
[TestInitialize]
|
[TestInitialize]
|
||||||
public void TestInitialize()
|
public void TestInitialize()
|
||||||
{
|
{
|
||||||
var options = new DbContextOptionsBuilder<UserDbContext>()
|
//var options = new DbContextOptionsBuilder<UserDbContext>()
|
||||||
.UseInMemoryDatabase(databaseName: "UserDatabase")
|
// .UseInMemoryDatabase(databaseName: "UserDatabase")
|
||||||
.Options;
|
// .Options;
|
||||||
|
|
||||||
_mockContext = new Mock<UserDbContext>(options);
|
//_mockContext = new Mock<UserDbContext>(options);
|
||||||
|
|
||||||
var mockSet = new Mock<DbSet<User>>();
|
//var mockSet = new Mock<DbSet<User>>();
|
||||||
_mockContext.Setup(c => c.Users).Returns(mockSet.Object);
|
//_mockContext.Setup(c => c.Users).Returns(mockSet.Object);
|
||||||
|
|
||||||
_userDal = new UserDal(_mockContext.Object);
|
//_userDal = new UserDal(_mockContext.Object);
|
||||||
|
|
||||||
|
_userDal = PooledDal.CreateDal<UserDal>();
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
[DataRow("test@tiam.hu")]
|
||||||
|
public void GetUserByEmail_ReturnsUser_WhenUserExists(string email)
|
||||||
|
{
|
||||||
|
//var userDal = PooledDal.CreateDal<UserDal>();
|
||||||
|
var user = _userDal.GetUserByEmail(email);
|
||||||
|
|
||||||
|
Assert.IsNotNull(user);
|
||||||
|
Assert.AreEqual(email, user.EmailAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
[DataRow("test@tiam.hu")]
|
[DataRow("test@tiam.hu")]
|
||||||
public async Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
|
public async Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
|
||||||
{
|
{
|
||||||
// Arrange
|
User? user = null;
|
||||||
var user = new User { Email = email };
|
//var userDal = PooledDal.CreateDal<UserDal>();
|
||||||
var users = new[] { user }.AsQueryable();
|
|
||||||
|
|
||||||
var mockSet = new Mock<DbSet<User>>();
|
user = await _userDal.GetUserByEmailAsync(email).ConfigureAwait(false);
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.Provider).Returns(users.Provider);
|
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.Expression).Returns(users.Expression);
|
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.ElementType).Returns(users.ElementType);
|
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());
|
|
||||||
|
|
||||||
_mockContext.Setup(c => c.Users).Returns(mockSet.Object);
|
//user = await _userDal.SessionAsync(ctx => ctx.Users.FirstOrDefault(x => x.EmailAddress == email)).ConfigureAwait(false);
|
||||||
|
|
||||||
// Act
|
//await using (var ctx = _userDal.Context)
|
||||||
var result = await _userDal.GetUserByEmailAsync(email);
|
//{
|
||||||
|
// user = await ctx.Users.FirstOrDefaultAsync(x => x.EmailAddress == email).ConfigureAwait(false);
|
||||||
|
//}
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.IsNotNull(result);
|
Assert.IsNotNull(user);
|
||||||
Assert.AreEqual(email, result.Email);
|
Assert.AreEqual(email, user.EmailAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
//[TestMethod]
|
||||||
[DataRow("test@test.hu")]
|
//[DataRow("test@tiam.hu")]
|
||||||
public async Task GetUserByEmailAsync_ReturnsNull_WhenUserDoesNotExist(string email)
|
//public async Task GetUserByEmailAsync_ReturnsUser_WhenUserExists(string email)
|
||||||
{
|
//{
|
||||||
// Arrange
|
// // Arrange
|
||||||
var users = new User[0].AsQueryable();
|
// var user = new User { EmailAddress = email };
|
||||||
|
// var users = new[] { user }.AsQueryable();
|
||||||
|
|
||||||
var mockSet = new Mock<DbSet<User>>();
|
// var mockSet = new Mock<DbSet<User>>();
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.Provider).Returns(users.Provider);
|
// mockSet.As<IQueryable<User>>().Setup(m => m.Provider).Returns(users.Provider);
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.Expression).Returns(users.Expression);
|
// mockSet.As<IQueryable<User>>().Setup(m => m.Expression).Returns(users.Expression);
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.ElementType).Returns(users.ElementType);
|
// mockSet.As<IQueryable<User>>().Setup(m => m.ElementType).Returns(users.ElementType);
|
||||||
mockSet.As<IQueryable<User>>().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());
|
// mockSet.As<IQueryable<User>>().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());
|
||||||
|
|
||||||
_mockContext.Setup(c => c.Users).Returns(mockSet.Object);
|
// _mockContext.Setup(c => c.Users).Returns(mockSet.Object);
|
||||||
|
|
||||||
// Act
|
// // Act
|
||||||
var result = await _userDal.GetUserByEmailAsync(email);
|
// var result = await _userDal.GetUserByEmailAsync(email);
|
||||||
|
|
||||||
// Assert
|
// // Assert
|
||||||
Assert.IsNull(result);
|
// Assert.IsNotNull(result);
|
||||||
}
|
// Assert.AreEqual(email, result.EmailAddress);
|
||||||
|
//}
|
||||||
|
|
||||||
[TestMethod]
|
//[TestMethod]
|
||||||
[DataRow("test@test.com", "+1234567890", "password")]
|
//[DataRow("TEST@TEST.COM")]
|
||||||
public async Task CreateUserAsync_ShouldReturnTrue_WhenUserIsCreated(string email, string phoneNumbr, string password)
|
//public async Task GetUserByEmailAsync_ReturnsNull_WhenUserDoesNotExist(string email)
|
||||||
{
|
//{
|
||||||
// Arrange
|
// // Arrange
|
||||||
var user = new User
|
// var users = new User[0].AsQueryable();
|
||||||
{
|
|
||||||
Id = Guid.NewGuid(),
|
|
||||||
Email = email,
|
|
||||||
PhoneNumber = phoneNumbr,
|
|
||||||
Password = password
|
|
||||||
};
|
|
||||||
|
|
||||||
var mockSet = new Mock<DbSet<User>>();
|
// var mockSet = new Mock<DbSet<User>>();
|
||||||
_mockContext.Setup(x => x.Users).Returns(mockSet.Object);
|
// mockSet.As<IQueryable<User>>().Setup(m => m.Provider).Returns(users.Provider);
|
||||||
_mockContext.Setup(x => x.Users.Add(user)).Returns(() => null);
|
// mockSet.As<IQueryable<User>>().Setup(m => m.Expression).Returns(users.Expression);
|
||||||
|
// mockSet.As<IQueryable<User>>().Setup(m => m.ElementType).Returns(users.ElementType);
|
||||||
|
// mockSet.As<IQueryable<User>>().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());
|
||||||
|
|
||||||
_mockContext.Setup(x => x.SaveChangesAsync(It.IsAny<CancellationToken>()))
|
// _mockContext.Setup(c => c.Users).Returns(mockSet.Object);
|
||||||
.ReturnsAsync(1)
|
|
||||||
.Verifiable();
|
|
||||||
|
|
||||||
// Act
|
// // Act
|
||||||
var result = await _userDal.CreateUserAsync(user);
|
// var result = await _userDal.GetUserByEmailAsync(email);
|
||||||
|
|
||||||
// Assert
|
// // Assert
|
||||||
Assert.IsTrue(result);
|
// Assert.IsNull(result);
|
||||||
}
|
//}
|
||||||
|
|
||||||
[TestMethod]
|
//[TestMethod]
|
||||||
[DataRow("test@test.com", "+1234567890", "password")]
|
//[DataRow("TEST@TEST.COM", "+1234567890", "password")]
|
||||||
public async Task UpdateUserAsync_ShouldUpdateUser(string email, string phoneNumbr, string password)
|
//public async Task CreateUserAsync_ShouldReturnTrue_WhenUserIsCreated(string email, string phoneNumbr, string password)
|
||||||
{
|
//{
|
||||||
// Arrange
|
// // Arrange
|
||||||
var user = new User(Guid.NewGuid(), email, phoneNumbr, password);
|
// var user = new User
|
||||||
_mockContext.Object.Users.Add(user);
|
// {
|
||||||
await _mockContext.Object.SaveChangesAsync();
|
// Id = Guid.NewGuid(),
|
||||||
|
// EmailAddress = email,
|
||||||
|
// PhoneNumber = phoneNumbr,
|
||||||
|
// Password = password
|
||||||
|
// };
|
||||||
|
|
||||||
// Act
|
// var mockSet = new Mock<DbSet<User>>();
|
||||||
user.Email = email;
|
// _mockContext.Setup(x => x.Users).Returns(mockSet.Object);
|
||||||
var result = await _userDal.UpdateUserAsync(user);
|
// _mockContext.Setup(x => x.Users.Add(user)).Returns(() => null);
|
||||||
|
|
||||||
// Assert
|
// _mockContext.Setup(x => x.SaveChangesAsync(It.IsAny<CancellationToken>()))
|
||||||
Assert.IsTrue(result);
|
// .ReturnsAsync(1)
|
||||||
var updatedUser = _mockContext.Object.Users.Single(u => u.Email == user.Email);
|
// .Verifiable();
|
||||||
Assert.AreEqual(email, updatedUser.Email);
|
|
||||||
}
|
// // Act
|
||||||
|
// var result = await _userDal.CreateUserAsync(user);
|
||||||
|
|
||||||
|
// // Assert
|
||||||
|
// Assert.IsTrue(result);
|
||||||
|
//}
|
||||||
|
|
||||||
|
//[TestMethod]
|
||||||
|
//[DataRow("TEST@TEST.COM", "+1234567890", "password")]
|
||||||
|
//public async Task UpdateUserAsync_ShouldUpdateUser(string email, string phoneNumbr, string password)
|
||||||
|
//{
|
||||||
|
// // Arrange
|
||||||
|
// var user = new User(Guid.NewGuid(), email, phoneNumbr, password);
|
||||||
|
// _mockContext.Object.Users.Add(user);
|
||||||
|
// await _mockContext.Object.SaveChangesAsync();
|
||||||
|
|
||||||
|
// // Act
|
||||||
|
// user.EmailAddress = email;
|
||||||
|
// var result = await _userDal.UpdateUserAsync(user);
|
||||||
|
|
||||||
|
// // Assert
|
||||||
|
// Assert.IsTrue(result);
|
||||||
|
// var updatedUser = _mockContext.Object.Users.Single(u => u.EmailAddress == user.EmailAddress);
|
||||||
|
// Assert.AreEqual(email, updatedUser.EmailAddress);
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -18,30 +18,30 @@ namespace TIAM.Database.DataLayers.Users
|
||||||
|
|
||||||
public Task<List<User>> GetUsersAsync()
|
public Task<List<User>> GetUsersAsync()
|
||||||
{
|
{
|
||||||
return Ctx.Users.ToListAsync();
|
return Context.Users.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<User?> GetUserByEmailAsync(string email)
|
public Task<User?> GetUserByEmailAsync(string email)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Getting user from db {email}");
|
Console.WriteLine($"Getting user from db {email}");
|
||||||
var emailLower = email.ToLower();
|
var emailLower = email.ToLower();
|
||||||
return Ctx.Users.SingleOrDefaultAsync(x=>x.Email.ToLower() == emailLower);
|
return Context.Users.SingleOrDefaultAsync(x=>x.EmailAddress.ToLower() == emailLower);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> CreateUserAsync(User user)
|
public Task<bool> CreateUserAsync(User user)
|
||||||
{
|
{
|
||||||
user.Created = DateTime.UtcNow;
|
user.Created = DateTime.UtcNow;
|
||||||
user.Modified = DateTime.UtcNow;
|
user.Modified = DateTime.UtcNow;
|
||||||
Ctx.Users.Add(user);
|
Context.Users.Add(user);
|
||||||
Console.WriteLine($"Saving user to db {user.Id}, {user.Email}, {user.PhoneNumber}, {user.Password}");
|
Console.WriteLine($"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}");
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> UpdateUserAsync(User user)
|
public Task<bool> UpdateUserAsync(User user)
|
||||||
{
|
{
|
||||||
user.Modified = DateTime.UtcNow;
|
user.Modified = DateTime.UtcNow;
|
||||||
Ctx.Users.Update(user);
|
Context.Users.Update(user);
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,37 +18,37 @@ namespace TIAM.Database.DataLayers.Users
|
||||||
|
|
||||||
public Task<List<AuctionBid>> GetBids()
|
public Task<List<AuctionBid>> GetBids()
|
||||||
{
|
{
|
||||||
return Ctx.AuctionBids.ToListAsync();
|
return Context.AuctionBids.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<AuctionBid>> GetBidsByEmail(string email)
|
public Task<List<AuctionBid>> GetBidsByEmail(string email)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Getting bid from db {email}");
|
Console.WriteLine($"Getting bid from db {email}");
|
||||||
var emailLower = email.ToLower();
|
var emailLower = email.ToLower();
|
||||||
return Ctx.AuctionBids.Where(x => x.Email.ToLower() == emailLower).ToListAsync();
|
return Context.AuctionBids.Where(x => x.Email.ToLower() == emailLower).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<AuctionBid?> GetBidById(Guid id)
|
public async Task<AuctionBid?> GetBidById(Guid id)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Getting bid from db {id}");
|
Console.WriteLine($"Getting bid from db {id}");
|
||||||
|
|
||||||
return Ctx.AuctionBids.FirstOrDefault(x => x.Id == id);
|
return Context.AuctionBids.FirstOrDefault(x => x.Id == id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> CreateBidAsync(AuctionBid auctionBid)
|
public Task<bool> CreateBidAsync(AuctionBid auctionBid)
|
||||||
{
|
{
|
||||||
auctionBid.Created = DateTime.UtcNow;
|
auctionBid.Created = DateTime.UtcNow;
|
||||||
auctionBid.Modified = DateTime.UtcNow;
|
auctionBid.Modified = DateTime.UtcNow;
|
||||||
Ctx.AuctionBids.Add(auctionBid);
|
Context.AuctionBids.Add(auctionBid);
|
||||||
Console.WriteLine($"Saving user to db {auctionBid.Id}, {auctionBid.Email}, {auctionBid.PhoneNumber}");
|
Console.WriteLine($"Saving user to db {auctionBid.Id}, {auctionBid.Email}, {auctionBid.PhoneNumber}");
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> UpdateBidAsync(AuctionBid auctionBid)
|
public Task<bool> UpdateBidAsync(AuctionBid auctionBid)
|
||||||
{
|
{
|
||||||
auctionBid.Modified = DateTime.UtcNow;
|
auctionBid.Modified = DateTime.UtcNow;
|
||||||
Ctx.AuctionBids.Update(auctionBid);
|
Context.AuctionBids.Update(auctionBid);
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using AyCode.Database.DataLayers;
|
||||||
using TIAM.Database.DbContexts;
|
using TIAM.Database.DbContexts;
|
||||||
|
|
||||||
namespace TIAM.Database.DataLayers;
|
namespace TIAM.Database.DataLayers;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ public class TransferDestinationDal : TiamDalBase<TransferDestinationDbContext>
|
||||||
{
|
{
|
||||||
transferDestination.Created = DateTime.UtcNow;
|
transferDestination.Created = DateTime.UtcNow;
|
||||||
transferDestination.Modified = DateTime.UtcNow;
|
transferDestination.Modified = DateTime.UtcNow;
|
||||||
Ctx.TransferDestinations.Add(transferDestination);
|
Context.TransferDestinations.Add(transferDestination);
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -3,13 +3,16 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using AyCode.Database.DataLayers;
|
||||||
|
using AyCode.Database.DataLayers.Users;
|
||||||
|
using AyCode.Entities.Users;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using TIAM.Database.DbContexts;
|
using TIAM.Database.DbContexts;
|
||||||
using TIAM.Entities.Users;
|
using TIAM.Entities.Users;
|
||||||
|
|
||||||
namespace TIAM.Database.DataLayers.Users
|
namespace TIAM.Database.DataLayers.Users
|
||||||
{
|
{
|
||||||
public class UserDal : TiamDalBase<UserDbContext>
|
public class UserDal : UserDalBase<UserDbContext, User, UserTokenBase>
|
||||||
{
|
{
|
||||||
|
|
||||||
public UserDal() : base()
|
public UserDal() : base()
|
||||||
|
|
@ -22,62 +25,64 @@ namespace TIAM.Database.DataLayers.Users
|
||||||
|
|
||||||
public Task<List<User>> GetUsersAsync()
|
public Task<List<User>> GetUsersAsync()
|
||||||
{
|
{
|
||||||
return Ctx.Users.ToListAsync();
|
return Context.Users.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Task<User?> GetUserByEmailAsync(string email)
|
//public Task<User?> GetUserByEmailAsync(string email)
|
||||||
{
|
//{
|
||||||
Console.WriteLine($"Getting user from db {email}");
|
// Console.WriteLine($"Getting user from db {email}");
|
||||||
var emailLower = email.ToLower();
|
// //var emailLower = email.ToLower();
|
||||||
return Ctx.Users.SingleOrDefaultAsync(x=>x.Email.ToLower() == emailLower);
|
|
||||||
}
|
|
||||||
|
|
||||||
public virtual Task<User?> GetUserByPhoneNumberAsync(string phoneNumber)
|
// return Context.GetUserByEmail(email);
|
||||||
|
// //return Context.Users.SingleOrDefaultAsync(x=>x.Email.ToLower() == emailLower);
|
||||||
|
//}
|
||||||
|
|
||||||
|
public Task<User?> GetUserByPhoneNumberAsync(string phoneNumber)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Getting user from db {phoneNumber}");
|
Console.WriteLine($"Getting user from db {phoneNumber}");
|
||||||
var phoneNumberLower = phoneNumber.ToLower();
|
var phoneNumberLower = phoneNumber.ToLower();
|
||||||
return Ctx.Users.SingleOrDefaultAsync(x=>x.PhoneNumber.ToLower() == phoneNumberLower);
|
return Context.Users.SingleOrDefaultAsync(x=>x.PhoneNumber.ToLower() == phoneNumberLower);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual Task<User?> GetUserByEmailOrPhoneNumberAsync(string emailOrPhoneNumber)
|
public Task<User?> GetUserByEmailOrPhoneNumberAsync(string emailOrPhoneNumber)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Getting user from db {emailOrPhoneNumber}");
|
Console.WriteLine($"Getting user from db {emailOrPhoneNumber}");
|
||||||
var emailOrPhoneNumberLower = emailOrPhoneNumber.ToLower();
|
var emailOrPhoneNumberLower = emailOrPhoneNumber.ToLower();
|
||||||
return Ctx.Users.SingleOrDefaultAsync(x=>x.Email.ToLower() == emailOrPhoneNumberLower || x.PhoneNumber.ToLower() == emailOrPhoneNumberLower);
|
return Context.Users.SingleOrDefaultAsync(x=>x.EmailAddress.ToLower() == emailOrPhoneNumberLower || x.PhoneNumber.ToLower() == emailOrPhoneNumberLower);
|
||||||
}
|
}
|
||||||
|
|
||||||
//get user by Id
|
//get user by Id
|
||||||
public virtual Task<User?> GetUserByIdAsync(Guid id)
|
public virtual Task<User?> GetUserByIdAsync(Guid id)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Getting user from db {id}");
|
Console.WriteLine($"Getting user from db {id}");
|
||||||
return Ctx.Users.SingleOrDefaultAsync(x=>x.Id == id);
|
return Context.Users.SingleOrDefaultAsync(x=>x.Id == id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> CreateUserAsync(User user)
|
public Task<bool> CreateUserAsync(User user)
|
||||||
{
|
{
|
||||||
user.Created = DateTime.UtcNow;
|
user.Created = DateTime.UtcNow;
|
||||||
user.Modified = DateTime.UtcNow;
|
user.Modified = DateTime.UtcNow;
|
||||||
Ctx.Users.Add(user);
|
Context.Users.Add(user);
|
||||||
Console.WriteLine($"Saving user to db {user.Id}, {user.Email}, {user.PhoneNumber}, {user.Password}");
|
Console.WriteLine($"Saving user to db {user.Id}, {user.EmailAddress}, {user.PhoneNumber}, {user.Password}");
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> UpdateUserAsyncOld(User user)
|
public Task<bool> UpdateUserAsyncOld(User user)
|
||||||
{
|
{
|
||||||
user.Modified = DateTime.UtcNow;
|
user.Modified = DateTime.UtcNow;
|
||||||
Ctx.Users.Update(user);
|
Context.Users.Update(user);
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x=>x.Result > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<bool> UpdateUserAsync(User user)
|
public Task<bool> UpdateUserAsync(User user)
|
||||||
{
|
{
|
||||||
var existingUser = Ctx.Users.FirstOrDefault(u => u.Email == user.Email);
|
var existingUser = Context.Users.FirstOrDefault(u => u.EmailAddress == user.EmailAddress);
|
||||||
if (existingUser != null)
|
if (existingUser != null)
|
||||||
{
|
{
|
||||||
//user.Modified = DateTime.UtcNow; //ezt nem kell megadni, a háttérben ezt magától megcsinálja a DbContextBase - J.
|
//user.Modified = DateTime.UtcNow; //ezt nem kell megadni, a háttérben ezt magától megcsinálja a DbContextBase - J.
|
||||||
existingUser = user;
|
existingUser = user;
|
||||||
Ctx.Users.Update(existingUser);
|
Context.Users.Update(existingUser);
|
||||||
return Ctx.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,19 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using AyCode.Database.DbContexts;
|
using AyCode.Database.DbContexts;
|
||||||
|
using AyCode.Database.DbContexts.Users;
|
||||||
|
using AyCode.Entities.Users;
|
||||||
|
using AyCode.Interfaces.Users;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using TIAM.Entities.TransferDestinations;
|
using TIAM.Entities.TransferDestinations;
|
||||||
using TIAM.Entities.Users;
|
using TIAM.Entities.Users;
|
||||||
|
|
||||||
namespace TIAM.Database.DbContexts
|
namespace TIAM.Database.DbContexts
|
||||||
{
|
{
|
||||||
public class UserDbContext : TiamDbContextBase
|
public class UserDbContext : TiamDbContextBase, IUserDbContextBase<User, UserTokenBase>
|
||||||
{
|
{
|
||||||
public virtual DbSet<User> Users { get; set; }
|
public virtual DbSet<User> Users { get; set; }
|
||||||
|
public DbSet<UserTokenBase> UserTokens { get; set; }
|
||||||
|
|
||||||
public UserDbContext() //: this(string.Empty)
|
public UserDbContext() //: this(string.Empty)
|
||||||
{
|
{
|
||||||
|
|
@ -37,7 +41,5 @@ namespace TIAM.Database.DbContexts
|
||||||
optionsBuilder.EnableDetailedErrors(true);
|
optionsBuilder.EnableDetailedErrors(true);
|
||||||
base.OnConfiguring(optionsBuilder);
|
base.OnConfiguring(optionsBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ namespace TIAMMobilApp.Services
|
||||||
if (dbUser != null)
|
if (dbUser != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
User = new UserSessionModel(dbUser.Id, UserType.User, dbUser.Email, 1);
|
User = new UserSessionModel(dbUser.Id, UserType.User, dbUser.EmailAddress, 1);
|
||||||
return User;
|
return User;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ else
|
||||||
|
|
||||||
@foreach (var dest in Users)
|
@foreach (var dest in Users)
|
||||||
{
|
{
|
||||||
<p>@dest.Email</p>
|
<p>@dest.EmailAddress</p>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ namespace TIAMWebApp.Client.Services
|
||||||
if (dbUser != null)
|
if (dbUser != null)
|
||||||
{
|
{
|
||||||
|
|
||||||
User = new UserSessionModel(dbUser.Id, UserType.User, dbUser.Email, 1);
|
User = new UserSessionModel(dbUser.Id, UserType.User, dbUser.EmailAddress, 1);
|
||||||
return User;
|
return User;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[Route("GetTransferDestinations")]
|
[Route("GetTransferDestinations")]
|
||||||
public async Task<IEnumerable<TransferDestination>> GetTransferDestinations()
|
public async Task<IEnumerable<TransferDestination>> GetTransferDestinations()
|
||||||
{
|
{
|
||||||
return await _transferDestinationDal.Ctx.TransferDestinations.ToListAsync();
|
return await _transferDestinationDal.Context.TransferDestinations.ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
|
|
@ -56,7 +56,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[Route("GetTransferDestinationByCoordinates")]
|
[Route("GetTransferDestinationByCoordinates")]
|
||||||
public async Task<TransferDestination?> GetTransferDestinationByCoordinates(double latitude, double longitude)
|
public async Task<TransferDestination?> GetTransferDestinationByCoordinates(double latitude, double longitude)
|
||||||
{
|
{
|
||||||
return await _transferDestinationDal.Ctx.TransferDestinations.FirstOrDefaultAsync(x => x.Latitude == latitude && x.Longitude == longitude);
|
return await _transferDestinationDal.Context.TransferDestinations.FirstOrDefaultAsync(x => x.Latitude == latitude && x.Longitude == longitude);
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
|
|
@ -64,7 +64,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[Route("GetTransferDestinationByAddress")]
|
[Route("GetTransferDestinationByAddress")]
|
||||||
public async Task<TransferDestination?> GetTransferDestinationByAddress(string address)
|
public async Task<TransferDestination?> GetTransferDestinationByAddress(string address)
|
||||||
{
|
{
|
||||||
return await _transferDestinationDal.Ctx.TransferDestinations.FirstOrDefaultAsync(x => x.Address == address);
|
return await _transferDestinationDal.Context.TransferDestinations.FirstOrDefaultAsync(x => x.Address == address);
|
||||||
}
|
}
|
||||||
|
|
||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
|
|
@ -102,7 +102,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
Console.WriteLine($"TransferDestination to be created: {Longitude}");
|
Console.WriteLine($"TransferDestination to be created: {Longitude}");
|
||||||
Console.WriteLine($"TransferDestination to be created: {Address}");
|
Console.WriteLine($"TransferDestination to be created: {Address}");
|
||||||
|
|
||||||
//await _transferDestinationDal.Ctx.TransferDestinations.AddAsync(transferDestination);
|
//await _transferDestinationDal.Context.TransferDestinations.AddAsync(transferDestination);
|
||||||
await _transferDestinationDal.CreateTransferDestinationAsync(transferDestination);
|
await _transferDestinationDal.CreateTransferDestinationAsync(transferDestination);
|
||||||
return Ok("yes");
|
return Ok("yes");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
var claims = new List<Claim>
|
var claims = new List<Claim>
|
||||||
{
|
{
|
||||||
new(ClaimTypes.NameIdentifier, user.Id.ToString()),
|
new(ClaimTypes.NameIdentifier, user.Id.ToString()),
|
||||||
new(ClaimTypes.Email, user.Email)
|
new(ClaimTypes.Email, user.EmailAddress)
|
||||||
};
|
};
|
||||||
|
|
||||||
var tokenDescriptor = new SecurityTokenDescriptor
|
var tokenDescriptor = new SecurityTokenDescriptor
|
||||||
|
|
@ -180,7 +180,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
{
|
{
|
||||||
//get user from db
|
//get user from db
|
||||||
dbUser = await _userDal.GetUserByEmailAsync(email.Value);
|
dbUser = await _userDal.GetUserByEmailAsync(email.Value);
|
||||||
Console.WriteLine("DbUser email: " + dbUser?.Email);
|
Console.WriteLine("DbUser email: " + dbUser?.EmailAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
//mocking - update userModel with new refreshToken so it returns true after the check below
|
//mocking - update userModel with new refreshToken so it returns true after the check below
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using AyCode.Interfaces.Messages;
|
using AyCode.Database.DataLayers.Users;
|
||||||
|
using AyCode.Interfaces.Messages;
|
||||||
using SendGrid;
|
using SendGrid;
|
||||||
using SendGrid.Helpers.Mail;
|
using SendGrid.Helpers.Mail;
|
||||||
using AyCode.Models.Enums;
|
using AyCode.Models.Enums;
|
||||||
|
|
@ -51,9 +52,13 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
|
|
||||||
public async Task<string> SendMailWithSendgrid(EMailMessage message)
|
public async Task<string> SendMailWithSendgrid(EMailMessage message)
|
||||||
{
|
{
|
||||||
|
//példa, így is lehet... - J.
|
||||||
|
//var senderUser2 = await _userDal.SessionAsync(ctx => ctx.Users.FirstOrDefault(x => x.Id == message.SenderId);
|
||||||
|
|
||||||
//resolve user!!!
|
//resolve user!!!
|
||||||
var senderUser = _userDal.Ctx.Users.FirstOrDefault(x => x.Id == message.SenderId);
|
var senderUser = _userDal.GetUserById(message.SenderId);
|
||||||
var receiverUser = _userDal.Ctx.Users.FirstOrDefault(x => x.Id == message.ReceiverId);
|
var receiverUser = _userDal.GetUserById(message.ReceiverId);
|
||||||
|
|
||||||
string apiKey = _configuration["SendGrid:Key"];
|
string apiKey = _configuration["SendGrid:Key"];
|
||||||
var _client = new SendGridClient(apiKey);
|
var _client = new SendGridClient(apiKey);
|
||||||
var _from = new EmailAddress("", "");
|
var _from = new EmailAddress("", "");
|
||||||
|
|
@ -64,10 +69,10 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_from = new EmailAddress(senderUser.Email, senderUser.Email);
|
_from = new EmailAddress(senderUser.EmailAddress, senderUser.EmailAddress);
|
||||||
}
|
}
|
||||||
var _subject = message.Subject;
|
var _subject = message.Subject;
|
||||||
var _to = new EmailAddress(receiverUser.Email, receiverUser.Email);
|
var _to = new EmailAddress(receiverUser.EmailAddress, receiverUser.EmailAddress);
|
||||||
var _plainTextContent = message.Message;
|
var _plainTextContent = message.Message;
|
||||||
var _htmlContent = message.HtmlContent;
|
var _htmlContent = message.HtmlContent;
|
||||||
var _msg = MailHelper.CreateSingleEmail(_from, _to, message.Subject, _plainTextContent, _htmlContent);
|
var _msg = MailHelper.CreateSingleEmail(_from, _to, message.Subject, _plainTextContent, _htmlContent);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue