using Microsoft.IdentityModel.Protocols.OpenIdConnect; using rgbc_sds.dal.DB; using rgbc_sds.services.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace rgbc_sds.services.Services { public class UserService { #region [ Variables ] private readonly rgbc_sdsContext _context; //rgbc_sdsContext _context = new rgbc_sdsContext(); #endregion [ Variables ] #region [ Constructor ] public UserService(rgbc_sdsContext context) { _context = context; } #endregion [ Constructor ] public UserModel ValidateUser(string domain) { var returnModel = new UserModel(); var user = _context.mstUser.Where(x => x.strDomainLogin == domain).FirstOrDefault(); // TO DO: // 1. CHECK USER AGAINST RGBC ACTIVE DIRECTORY if (user == null) { return new UserModel(); } returnModel.Id = user.UserID; returnModel.refUserGroupSDSID = Convert.ToInt32(user.refUserGroupSDSID); returnModel.strUserName = user.strUserName; //returnModel.RoleId = user.role_id; //returnModel.FirstName = user.first_name; //returnModel.LastName = user.last_name; //returnModel.Email = user.email; return returnModel; } public UserModel GetUserList() { var nameRole = ""; // setup returning model var model = new UserModel(); //// get the list of shipments //var userList = _context.users.Where(x => x.is_active == true).ToList(); //// populate shipment list model //foreach (var user in userList) //{ // switch (user.role_id) // { // case (int)Enums.RoleEnum.Admin: // nameRole = "Admin"; // break; // case (int)Enums.RoleEnum.Viewer: // nameRole = "Viewer"; // break; // case (int)Enums.RoleEnum.Logistics: // nameRole = "Logistics"; // break; // default: // break; // } // model.UserListModel.Add(new UserModel // { // Id = user.id, // NameRole = nameRole, // FirstName = user.first_name, // LastName = user.last_name, // Email = user.email // }); //} // return the model return model; } public UserModel GetUser(int id) { var returnModel = new UserModel(); //var existingUser = _context.users.Where(users => users.id == id).FirstOrDefault(); //if (existingUser != null) //{ // returnModel.Id = existingUser.id; // returnModel.RoleId = existingUser.role_id; // returnModel.FirstName = existingUser.first_name; // returnModel.LastName = existingUser.last_name; // returnModel.Email = existingUser.email; //} return returnModel; } public string AddUser(UserModel model) { //var insertModel = new users() //{ // first_name = model.FirstName, // last_name = model.LastName, // email = model.Email, // role_id = model.RoleId, // created_by = model.CreatedBy, // created_at = model.CreatedAt //}; //try //{ // _context.users.Add(insertModel); // _context.SaveChanges(); // return "success"; //} //catch (Exception ex) //{ // return ex.Message; //} return "success"; } public UserModel UpdateUser(UserModel model) { //var existingUser = _context.users.Where(x => x.id == model.Id && x.is_active == true).FirstOrDefault(); //if (existingUser != null) //{ // existingUser.first_name = model.FirstName; // existingUser.last_name = model.LastName; // existingUser.email = model.Email; // existingUser.role_id = model.RoleId; // existingUser.updated_by = ""; // existingUser.updated_at = DateTime.Now; // try // { // _context.users.Update(existingUser); // _context.SaveChanges(); // } // catch (Exception) // { // throw; // } //} return model; } public bool DeleteUser(int Id) { //var existingUser = _context.users.Where(x => x.id == Id && x.is_active == true).FirstOrDefault(); //if (existingUser != null) //{ // existingUser.is_active = false; // try // { // _context.users.Update(existingUser); // _context.SaveChanges(); // return true; // } // catch (Exception) // { // return false; // } //} return false; } } }