added comments and rolecontroller updates
This commit is contained in:
@@ -12,15 +12,58 @@ namespace Business.Business.Sales
|
||||
{
|
||||
private LuminousContext context;
|
||||
private User currentUser;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor that accepts a user object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// User object is used for role checking
|
||||
/// </remarks>
|
||||
|
||||
public ProductController(User currenUser)
|
||||
{
|
||||
this.currentUser = currenUser;
|
||||
context = new LuminousContext();
|
||||
this.context = new LuminousContext();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor that accepts custom context and a user object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Custom context is mainly used for Unit Testing
|
||||
/// User object is used for role checking
|
||||
/// </remarks>
|
||||
|
||||
public ProductController(LuminousContext context, User currenUser)
|
||||
{
|
||||
this.currentUser = currenUser;
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets All Roles
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Requires no special roles
|
||||
/// </remarks>
|
||||
/// <returns>
|
||||
/// Returns a ICollection of all roles.
|
||||
/// </returns>
|
||||
|
||||
public ICollection<Product> GetAll()
|
||||
{
|
||||
return context.Product.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the role by given Id
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an object of the role with the given Id.
|
||||
///
|
||||
/// Requires no special roles
|
||||
/// </returns>
|
||||
|
||||
public Product Get(int id)
|
||||
{
|
||||
var item = context.Product.Find(id);
|
||||
@@ -33,6 +76,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Product Id not found!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the role by given name
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an object of the role with the given name.
|
||||
///
|
||||
/// Requires no special roles
|
||||
/// </returns>
|
||||
|
||||
public Product Get(string name)
|
||||
{
|
||||
var item = context.Product.FirstOrDefault(p => p.Name == name);
|
||||
@@ -45,6 +98,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Product name not found!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the role by a given substring
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an ICollection of all roles that contain the given substring in their name.
|
||||
///
|
||||
/// Requires no special roles
|
||||
/// </returns>
|
||||
|
||||
public ICollection<Product> GetByApproximateName(string name)
|
||||
{
|
||||
var items = context.Product.Where(u => u.Name.Contains(name)).ToList();
|
||||
@@ -57,6 +120,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("No products added in the database!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds an product in the database
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an item name and price.
|
||||
///
|
||||
/// Requires no special roles
|
||||
/// </remarks>
|
||||
|
||||
public void AddItem(string name, double price)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -84,6 +157,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the name of the given product
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts the id for getting the product.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateName(int id, string newName)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -111,6 +194,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the name of the given product
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts the current name for getting the product.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateName(string oldName, string newName)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -138,6 +231,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the price of the given product
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts the id for getting the product.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdatePrice(int id, double price)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -165,6 +268,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the price of the given product
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts the name for getting the product.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdatePrice(string name, double price)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -192,6 +305,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the given product
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an product for getting the product
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void Delete(int id)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -212,6 +335,16 @@ namespace Business.Business.Sales
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the given product
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an name for getting the product
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void Delete(string name)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
|
@@ -12,11 +12,50 @@ namespace Business.Business.UserManagment.Controllers
|
||||
{
|
||||
private LuminousContext context;
|
||||
private User currentUser;
|
||||
|
||||
/// <summary>
|
||||
/// Empty Constructor
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Used for Initialiation of the roles in the database
|
||||
/// </remarks>
|
||||
|
||||
public RoleController(){}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor that accepts a user object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// User object is used for role checking
|
||||
/// </remarks>
|
||||
|
||||
public RoleController(User currentUser)
|
||||
{
|
||||
this.context = new LuminousContext();
|
||||
this.currentUser = currentUser;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor that accepts custom context and a user object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Custom context is mainly used for Unit Testing
|
||||
/// User object is used for role checking
|
||||
/// </remarks>
|
||||
|
||||
public RoleController(LuminousContext context, User currentUser)
|
||||
{
|
||||
this.context = context;
|
||||
this.currentUser = currentUser;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates the roles
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Almost every method of each class checks if the user has suffficient roles for the task
|
||||
/// </remarks>
|
||||
|
||||
public void CreateInitialRoles()
|
||||
{
|
||||
var Admin = new Role("Admin");
|
||||
@@ -25,6 +64,14 @@ namespace Business.Business.UserManagment.Controllers
|
||||
context.Role.AddRange(Admin, Manager, Cashier);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets All Roles
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns a ICollection of all roles
|
||||
/// </returns>
|
||||
|
||||
public ICollection<Role> GetAll()
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -36,6 +83,16 @@ namespace Business.Business.UserManagment.Controllers
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the role by given Id
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an object of the role with the given Id
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </returns>
|
||||
|
||||
public Role Get(int id)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -47,6 +104,16 @@ namespace Business.Business.UserManagment.Controllers
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the role by given name
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an object of the role with the given name
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </returns>
|
||||
|
||||
public Role Get(string name)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
@@ -58,11 +125,21 @@ namespace Business.Business.UserManagment.Controllers
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
public ICollection<Role> GetByApproximateName(string name)
|
||||
|
||||
/// <summary>
|
||||
/// Searches the role by a given substring
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an ICollection of all roles that contain the given substring in their name.
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </returns>
|
||||
|
||||
public ICollection<Role> GetByApproximateName(string substring)
|
||||
{
|
||||
if (currentUser.RoleId == 3)
|
||||
{
|
||||
return context.Role.Where(u => u.Name.Contains(name)).ToList();
|
||||
return context.Role.Where(u => u.Name.Contains(substring)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -12,16 +12,56 @@ namespace Business.Business.UserManagment
|
||||
private LuminousContext context;
|
||||
private RoleController rolectrl;
|
||||
private User currentUser;
|
||||
|
||||
/// <summary>
|
||||
/// Empty Constructor
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Used for Initialiation of the roles in the database
|
||||
/// </remarks>
|
||||
|
||||
public UserController()
|
||||
{
|
||||
this.context = new LuminousContext();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor that accepts a user object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// User object is used for role checking
|
||||
/// </remarks>
|
||||
|
||||
public UserController(User currentUser)
|
||||
{
|
||||
this.currentUser = currentUser;
|
||||
this.context = new LuminousContext();
|
||||
this.rolectrl = new RoleController(currentUser);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor that accepts custom context and a user object
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Custom context is mainly used for Unit Testing
|
||||
/// User object is used for role checking
|
||||
/// </remarks>
|
||||
|
||||
public UserController(User currentUser, LuminousContext context)
|
||||
{
|
||||
this.currentUser = currentUser;
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets All Users
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns a ICollection of all users.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </returns>
|
||||
|
||||
public ICollection<User> GetAll()
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -33,14 +73,30 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if there's a user in the database
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Can be used with an empty constructor
|
||||
/// </remarks>
|
||||
|
||||
public bool CheckIfUserEverCreated()
|
||||
{
|
||||
if (context.User.ToList().Any())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the user by given Id
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an object of the user with the given Id
|
||||
/// </returns>
|
||||
|
||||
public User Get(int id)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -52,6 +108,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the user by given name
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an object of the user with the given name.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </returns>
|
||||
|
||||
public User Get(string name)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -63,6 +129,38 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Searches the user by a given substring
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Returns an ICollection of all users that contain the given substring in their name.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </returns>
|
||||
|
||||
public ICollection<User> GetByApproximateName(string substring)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
{
|
||||
return context.User.Where(u => u.Name.Contains(substring)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if the password is valid
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Password is used to log in the user
|
||||
/// </remarks>
|
||||
/// <returns>
|
||||
/// Returns an object of the found user
|
||||
/// </returns>
|
||||
|
||||
public User ValidatePassword(string password)
|
||||
{
|
||||
var user = context.User.FirstOrDefault();
|
||||
@@ -72,23 +170,30 @@ namespace Business.Business.UserManagment
|
||||
}
|
||||
return user;
|
||||
}
|
||||
public ICollection<User> GetByApproximateName(string name)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
{
|
||||
return context.User.Where(u => u.Name.Contains(name)).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers an user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Used for the creation of the initial user, so it assigns admin role by default
|
||||
/// </remarks>
|
||||
|
||||
public void RegisterItem(string name, string password)
|
||||
{
|
||||
var user = new User(name, password, 1);
|
||||
context.User.Add(user);
|
||||
context.SaveChanges();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers an user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an role id so it can assign a role to the user.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void RegisterItem(string name, string password, int roleId)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -121,6 +226,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Registers an user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an role name so it can assign a role to the user.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void RegisterItem(string name, string password, string roleName)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -153,6 +268,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the username of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an id for getting the user.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateName(int id, string newName)
|
||||
{
|
||||
if (currentUser != null || currentUser.Id == 3)
|
||||
@@ -180,6 +305,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the username of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts the current name for getting the user.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateName(string oldName, string newName)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -207,6 +342,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the password of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an id for getting the user.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdatePassword(int id, string newPassword)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -234,6 +379,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the password of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts the name for getting the user.
|
||||
///
|
||||
/// Requires Admin role
|
||||
/// </remarks>
|
||||
|
||||
public void UpdatePassword(string name, string newPassword)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -261,6 +416,17 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the role of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an user id for getting the user.
|
||||
/// Accepts an role id for getting the role.
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateRole(int id, int RoleId)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -289,6 +455,17 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the role of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an user id for getting the user.
|
||||
/// Accepts an role name for getting the role.
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateRole(int id, string roleName)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -317,6 +494,17 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the role of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an username for getting the user.
|
||||
/// Accepts an role id for getting the role.
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateRole(string name, int roleId)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -345,6 +533,17 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates the role of the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an username for getting the user.
|
||||
/// Accepts an role name for getting the role.
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </remarks>
|
||||
|
||||
public void UpdateRole(string name, string roleName)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -373,6 +572,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an user id for getting the user.
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </remarks>
|
||||
|
||||
public void Delete(int id)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
@@ -393,6 +602,16 @@ namespace Business.Business.UserManagment
|
||||
throw new ArgumentException("Insufficient Role!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Deletes the given user
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Accepts an username for getting the user.
|
||||
///
|
||||
/// Requires Admin role.
|
||||
/// </remarks>
|
||||
|
||||
public void Delete(string name)
|
||||
{
|
||||
if (currentUser != null || currentUser.RoleId == 3)
|
||||
|
Reference in New Issue
Block a user