Users page and users service

This commit is contained in:
Andre Beging
2022-01-24 10:15:33 +01:00
parent 3cfac1a12d
commit 33c631aaf6
10 changed files with 380 additions and 30 deletions

View File

@@ -0,0 +1,21 @@
namespace FoodsharingSiegen.Server.Data.Service
{
public class ServiceBase
{
////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary> Database Context </summary>
///
/// <value> The context. </value>
////////////////////////////////////////////////////////////////////////////////////////////////////
protected FsContext Context { get; }
////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary> Specialised constructor for use only by derived class. </summary>
///
/// <remarks> A Beging, 20.10.2021. </remarks>
///
/// <param name="context"> The context. </param>
////////////////////////////////////////////////////////////////////////////////////////////////////
protected ServiceBase(FsContext context) => Context = context;
}
}

View File

@@ -0,0 +1,73 @@
using FoodsharingSiegen.Contracts;
using FoodsharingSiegen.Contracts.Entity;
using Microsoft.EntityFrameworkCore;
namespace FoodsharingSiegen.Server.Data.Service
{
public class UserService : ServiceBase
{
public UserService(FsContext context) : base(context)
{
}
public async Task<OperationResult<User>> AddUserAsync(User user)
{
try
{
if (await Context.Users.AnyAsync(x => x.Mail.ToLower().Equals(user.Mail.ToLower())))
return new OperationResult<User>(new Exception("Diese E-Mail Adresse wird bereits verwendet"));
user.Created = DateTime.UtcNow;
await Context.Users.AddAsync(user);
var saveResult = await Context.SaveChangesAsync();
if (saveResult == 0) return new OperationResult<User>(new Exception("Fehler bei der Registrierung"));
return new OperationResult<User>(user);
}
catch (Exception e)
{
return new OperationResult<User>(e);
}
}
public async Task<OperationResult> Update(User user)
{
try
{
Context.Users.Update(user);
var saveR = await Context.SaveChangesAsync();
if(saveR < 1) return new OperationResult(new Exception("Fehler beim speichern"));
return new OperationResult();
}
catch (Exception e)
{
return new OperationResult(e);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
/// <summary> Gets users asynchronous. </summary>
///
/// <remarks> A Beging, 20.10.2021. </remarks>
///
/// <returns> An asynchronous result that yields the users. </returns>
////////////////////////////////////////////////////////////////////////////////////////////////////
public async Task<OperationResult<List<User>>> GetUsersAsync()
{
try
{
var users = await Context.Users.ToListAsync();
return new OperationResult<List<User>>(users);
}
catch (Exception e)
{
return new OperationResult<List<User>>(e);
}
}
}
}