private List <UserUserRole> ExecuteUserUserUserRoleSqlCmd(SqlConnection sqlConnection, SqlCommand cmd) { List <UserUserRole> returnedList = new List <UserUserRole>(); try { sqlConnection.Open(); using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { UserUserRole userUserRole = new UserUserRole(); userUserRole.UserId = reader.GetFieldValue <int>(0); userUserRole.UserRoleId = reader.GetFieldValue <int>(0); returnedList.Add(userUserRole); } }; } catch (Exception ex) { _logger.ErrorMessage(ex); } finally { sqlConnection.Close(); } return(returnedList); }
public User Create(RegisterUserPostDto userNew) { // TODO: how to store the user that added the expense as a field in Expense? User toAdd = RegisterUserPostDto.ToUser(userNew); context.Users.Add(toAdd); context.SaveChanges(); context.Users.Attach(toAdd); UserRole role = new UserRole { Id = 1, Name = RoleConstants.REGULAR }; UserUserRole history = new UserUserRole { UserRole = role, StartTime = DateTime.Now }; List <UserUserRole> list = new List <UserUserRole> { history }; context.UserRoles.Add(role); context.UserRoles.Attach(role); toAdd.UserUserRoles = list; context.SaveChanges(); return(toAdd); }
public ErrorsCollection GiveNewRoleToUser(int userId, RoleIdModel roleIdModel) { var errors = roleValidator.ValidateRole(roleIdModel, context); if (errors != null) { return(errors); } var now = DateTime.Now; UserUserRole newUserRole = new UserUserRole { UserId = userId, UserRoleId = roleIdModel.RoleId, StartTime = now, EndTime = null }; UserUserRole userUserRoleForUser = context.UserUserRoles.FirstOrDefault(r => r.UserId == userId && r.EndTime == null); userUserRoleForUser.EndTime = now; context.UserUserRoles.Add(newUserRole); context.SaveChanges(); return(null); }
public static UseUserRoleGetModel ToUseUserRoleGetModel(UserUserRole userUserRole) { return(new UseUserRoleGetModel { Username = userUserRole.User.Username, RoleTitle = userUserRole.UserRole.Name, AllocatedAt = userUserRole.StartTime, RemovedAt = userUserRole.EndTime }); }
public PermissionGetModel PermissionHelper(UserUserRole userModel) { return(new PermissionGetModel { Id = userModel.Id, UserRole = userModel.UserRole.Name, StartTime = userModel.StartTime, EndTime = userModel.EndTime }); }
public static UserUserRoleGetModel FromUserUserRole(UserUserRole userUserRole) { return(new UserUserRoleGetModel { Id = userUserRole.Id, UserId = userUserRole.UserId, UserRoleId = userUserRole.UserRoleId, UserRoleName = userUserRole.UserRole.Name, StartTime = userUserRole.StartTime, EndTime = userUserRole.EndTime }); }
public GetUserDto Register(RegisterUserPostDto register) { User existing = context.Users.FirstOrDefault(u => u.Username == register.Username); if (existing != null) { return(null); } User user = new User { Email = register.Email, FullName = register.FullName, Password = ComputeSha256Hash(register.Password), Username = register.Username, CreatedAt = DateTime.Now }; context.Users.Add(user); context.SaveChanges(); context.Users.Attach(user); UserRole role = new UserRole { Id = 1, Name = RoleConstants.REGULAR }; UserUserRole history = new UserUserRole { UserRole = role, StartTime = DateTime.Now }; List <UserUserRole> list = new List <UserUserRole> { history }; context.UserRoles.Add(role); context.UserRoles.Attach(role); user.UserUserRoles = list; context.SaveChanges(); return(Authenticate(register.Username, register.Password)); }
public object Delete(int userId, int idPermission) { var existing = context.Users.Include("UserUserRoles.UserRole").FirstOrDefault(u => u.Id == userId); var permission = context.UserUserRoles.FirstOrDefault(u => u.Id == idPermission); if (existing == null) { return(null); } if (existing.UserUserRoles.Contains(permission)) { UserUserRole currentUseRole = existing.UserUserRoles.FirstOrDefault(u => u.Id.Equals(permission.Id)); context.UserUserRoles.Remove(currentUseRole); } else { return(null); } context.SaveChanges(); return(this.GetPermission(userId)); }
public object PermissionUpsert(int userId, PermissionPostModel permissionPostModel) { var errors = permissionValidator.Validate(permissionPostModel, context); if (errors != null) { return(errors); } var existing = context.Users.Include("UserUserRoles.UserRole").FirstOrDefault(u => u.Id == userId); var permission = this.GetPermissionFromDb(permissionPostModel.UserRole); if (existing == null) { return(null); } if (existing.UserUserRoles.Any(u => u. UserRole.Equals(permission))) { UserUserRole currentUseRole = existing.UserUserRoles.FirstOrDefault(u => u.UserRole.Equals(permission)); currentUseRole.EndTime = permissionPostModel.EndTime; currentUseRole.StartTime = permissionPostModel.StartTime; context.UserUserRoles.Update(currentUseRole); } else { context.UserUserRoles.Add(new UserUserRole { User = existing, UserRole = permission, StartTime = permissionPostModel.StartTime, EndTime = permissionPostModel.EndTime, }); } context.SaveChanges(); return(this.GetPermission(userId)); }
public ErrorsCollection Create(UserUserRolePostDTO userUserRolePostDTO) { var errors = userRoleValidator.Validate(userUserRolePostDTO, context); if (errors != null) { return(errors); } User user = context .Users .FirstOrDefault(u => u.Id == userUserRolePostDTO.UserId); if (user != null) { UserRole userRole = context .UserRoles .Include(urole => urole.UserUserRoles) .FirstOrDefault(urole => urole.Name == userUserRolePostDTO.UserRoleName); UserUserRole currentUserUserRole = context .UserUserRoles .Include(uurole => uurole.UserRole) .FirstOrDefault(uurole => uurole.UserId == user.Id && uurole.EndTime == null); if (currentUserUserRole == null) { context.UserUserRoles.Add(new UserUserRole { User = user, UserRole = userRole, StartTime = DateTime.Now, EndTime = null }); context.SaveChanges(); return(null); } if (!currentUserUserRole.UserRole.Name.Contains(userUserRolePostDTO.UserRoleName)) { currentUserUserRole.EndTime = DateTime.Now; context.UserUserRoles.Add(new UserUserRole { User = user, UserRole = userRole, StartTime = DateTime.Now, EndTime = null }); context.SaveChanges(); return(null); } else { return(null); } } return(null); }
public ErrorsCollection Create(UserUserRolePostModel userUserRolePostModel) { var errors = userRoleValidator.Validate(userUserRolePostModel, context); if (errors != null) { return(errors); } User user = context.Users .FirstOrDefault(u => u.Id == userUserRolePostModel.UserId); if (user != null) { UserRole userRole = context .UserRole .Include(ur => ur.UserUserRoles) .FirstOrDefault(ur => ur.Name == userUserRolePostModel.UserRoleName); UserUserRole curentUserUserRole = context.UserUserRole .Include(uur => uur.UserRole) .FirstOrDefault(uur => uur.UserId == user.Id && uur.EndTime == null); //discutabil, nu ar trebui sa fie null niciodata, adica la Register nu a fost creat bine un defalut Regular role pentru userul respectiv if (curentUserUserRole == null) { context.UserUserRole.Add(new UserUserRole { User = user, UserRole = userRole, StartTime = DateTime.Now, EndTime = null }); context.SaveChanges(); return(null); } //inchiderea perioadel de activare pentru un anumit rol if (!curentUserUserRole.UserRole.Name.Contains(userUserRolePostModel.UserRoleName)) { curentUserUserRole.EndTime = DateTime.Now; context.UserUserRole.Add(new UserUserRole { User = user, UserRole = userRole, StartTime = DateTime.Now, EndTime = null }); context.SaveChanges(); return(null); } else { return(null); //trebuie sa trimit eroare ca modificarea nu poate avea loc, rol nou = rol vechi } } return(null); //eroare Nu exista User cu Id-ul specificat }
// public User Upsert(int id, User user) //{ // var existing = context.Users.AsNoTracking().FirstOrDefault(ex => ex.Id == id); // if (existing == null) // { // context.Users.Add(user); // context.SaveChanges(); // return user; // } // user.Id = id; // context.Users.Update(user); // context.SaveChanges(); // return user; // } public User Upsert(int id, PostUserDto UserPostDto, User addedBy) { var existing = context.Users.AsNoTracking() .Include(u => u.UserUserRoles) .ThenInclude(us => us.UserRole) .FirstOrDefault(u => u.Id == id); if (existing == null) { User toAdd = PostUserDto.ToUser(UserPostDto); context.Users.Add(toAdd); context.SaveChanges(); return(toAdd); } String existingCurrentRole = GetLatestUserUserRole(existing.UserUserRoles).UserRole.Name; String addedByCurrentRole = GetLatestUserUserRole(addedBy.UserUserRoles).UserRole.Name; UserUserRole currentUserUserRole = GetLatestUserUserRole(existing.UserUserRoles); User toUpdate = PostUserDto.ToUser(UserPostDto); toUpdate.Password = existing.Password; toUpdate.CreatedAt = existing.CreatedAt; toUpdate.Id = id; if (existingCurrentRole.Equals(RoleConstants.USER_MANAGER) && addedByCurrentRole.Equals(RoleConstants.USER_MANAGER) && addedBy.CreatedAt.AddMonths(6) >= DateTime.Now) { return(null); } if (((!existingCurrentRole.Equals(RoleConstants.ADMIN) || (!existingCurrentRole.Equals(RoleConstants.USER_MANAGER)) && (addedByCurrentRole.Equals(RoleConstants.USER_MANAGER) || addedByCurrentRole.Equals(RoleConstants.ADMIN)))) || (existingCurrentRole.Equals(RoleConstants.USER_MANAGER) && addedByCurrentRole.Equals(RoleConstants.USER_MANAGER) && addedBy.CreatedAt.AddMonths(6) <= DateTime.Now)) { toUpdate.UserUserRoles = existing.UserUserRoles; context.Users.Update(toUpdate); context.SaveChanges(); context.Users.Attach(toUpdate); if (existingCurrentRole != UserPostDto.UserRole) { IEnumerable <UserRole> allRoles = context.UserRoles; List <String> list = new List <string>(); foreach (UserRole role in allRoles) { list.Add(role.Name); } if (list.Contains(UserPostDto.UserRole)) { UserRole role = SearchForRoleByTitle(UserPostDto.UserRole); UserUserRole history = new UserUserRole { UserRole = role, StartTime = DateTime.Now }; currentUserUserRole.EndTime = DateTime.Now; context.UserRoles.Attach(role); toUpdate.UserUserRoles.Add(history); context.SaveChanges(); } else { return(null); } } return(toUpdate); } return(null); }