public RoleResponse CreateRole(RolesDTO role, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); var _roles = _mapper.Map <AspNetRoles>(role); if (string.IsNullOrEmpty(_roles.Id)) { _roles.Id = Guid.NewGuid().ToString(); DateTime now = DateTime.Now; _roles.ConcurrencyStamp = now.ToString(); _context.AspNetRoles.Add(_roles); _context.SaveChanges(); var _roleDTOs = _mapper.Map <RolesDTO>(_roles); return(new RoleResponse { Status = BusinessStatus.Created, roles = _roleDTOs, Id = _roleDTOs.Id, ResponseMessage = $"Role created successfully! \n Role Name with: {_roleDTOs.Name}" }); //return _roleDTOs; } else { _context.AspNetRoles.Update(_roles); _context.SaveChanges(); var _roleDTOs = _mapper.Map <RolesDTO>(_roles); return(new RoleResponse { Status = BusinessStatus.Created, roles = _roleDTOs, Id = _roleDTOs.Id, ResponseMessage = $"Role modified successfully!" }); //return _roleDTOs; } }
public UserResponse CreateProfileUser(UserDTO user, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); var userDetails = user.UserDetails.First(); var userAddress = user.UserAddress.First(); EmailTest emailTest = new EmailTest(); if (string.IsNullOrEmpty(userDetails.UserId)) { var aspNet = _context.AspNetUsers.SingleOrDefault(x => x.UserName == userDetails.Email); if (aspNet == null) { userDetails.RoleId = null; userDetails.UserName = userDetails.Email; userDetails.CreatedDate = DateTime.Now; //userDetails.ProfileImage = userDetails.ProfileImage; AspNetUsers _users = _mapper.Map <AspNetUsers>(user); if (string.IsNullOrEmpty(_users.Id)) { _users.Id = Guid.NewGuid().ToString(); _users.UserName = userDetails.Email; _users.Email = userDetails.Email; _users.FirstTimeLogin = 0; _users.PasswordHash = Utilities.GenerateDefaultPassword(); emailTest.To = userDetails.Email; emailTest.Subject = "User profile creation"; emailTest.Message = "Your account has been created with Username:"******"\n" + "Please use this for login."; _context.AspNetUsers.Add(_users); } _context.SaveChanges(); var _usersDTOs = _mapper.Map <UserDTO>(_users); SendEmailAsync(emailTest); return(new UserResponse { Status = BusinessStatus.Created, users = _usersDTOs, Id = _usersDTOs.Id, ResponseMessage = $"User created successfully! \n Login with: {_usersDTOs.Email}" }); } else { return(new UserResponse { Status = BusinessStatus.Error, ResponseMessage = $"User already exists" }); } } else { AspNetUsers _users = _mapper.Map <AspNetUsers>(user); var _useraddress = _mapper.Map <TblUserAddress>(userAddress); var _usersDetail = _mapper.Map <TblUserDetails>(userDetails); //_context.AspNetUsers.Update(_users); //_context.TblUserDetails.Update(_usersDetail); _context.Update(_usersDetail); _context.Update(_useraddress); _context.SaveChanges(); return(new UserResponse { Status = BusinessStatus.Created, users = user, Id = _usersDetail.UserId, ResponseMessage = $"User modified successfully!" }); } }
public VerifyOTPResponse VerifyingOTP(VerifyOTP onetp, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); var sentotp = _context.TblSendOtp.SingleOrDefault(x => x.UserId == onetp.UserId); if (sentotp.Otp == onetp.Otp) { var user = _context.AspNetUsers.SingleOrDefault(x => x.Id == sentotp.UserId); if (user != null) { user.FirstTimeLogin = 1; } _context.AspNetUsers.Update(user); _context.TblSendOtp.Remove(sentotp); _context.SaveChanges(); return(new VerifyOTPResponse { Status = BusinessStatus.Ok, ResponseMessage = $"OTP verified successfully!" });; } else { return(new VerifyOTPResponse { Status = BusinessStatus.NotFound, ResponseMessage = $"Invalid OTP" });; } }
public String DeleteUserById(string Id, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); var tbl_userdata = _context.AspNetUsers.Where(item => item.Id == Id).FirstOrDefault(); tbl_userdata.IsActive = false; _context.SaveChanges(); return("Deleted!"); }
public UserRoleResponse AssignRole(UserRoleMapDTO userRoles, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); var roledata = _context.AspNetUserRoles.FirstOrDefault(x => x.UserId == userRoles.UserId); UserRolesDTO roleDTO = new UserRolesDTO(); if (userRoles.RoleId != null) { if (roledata == null) { for (int i = 0; i < userRoles.RoleId.Length; i++) { roleDTO.UserId = userRoles.UserId; roleDTO.RoleId = userRoles.RoleId[i]; AspNetUserRoles _usersRole = _mapper.Map <AspNetUserRoles>(roleDTO); _context.AspNetUserRoles.Add(_usersRole); // _context.SaveChanges(); } } else { var role = _context.AspNetUserRoles.Where(a => a.UserId == userRoles.UserId); foreach (var item in role) { _context.AspNetUserRoles.Remove(item); } for (int i = 0; i < userRoles.RoleId.Length; i++) { roleDTO.UserId = userRoles.UserId; roleDTO.RoleId = userRoles.RoleId[i]; AspNetUserRoles _usersRole = _mapper.Map <AspNetUserRoles>(roleDTO); _context.AspNetUserRoles.Add(_usersRole); // _context.SaveChanges(); } } var user = _context.TblUserDetails.SingleOrDefault(x => x.UserId == userRoles.UserId); if (string.IsNullOrEmpty(user.RoleId)) { user.RoleId = userRoles.RoleId[0].ToString(); } _context.SaveChanges(); //return userRoles; return(new UserRoleResponse { Status = BusinessStatus.Created, role = userRoles, ResponseMessage = $"Assigned {userRoles.RoleId} Role successfully! " }); } else { return(new UserRoleResponse { Status = BusinessStatus.Error, role = userRoles, ResponseMessage = $"Please select the Role to assign " }); } }
//public UserDTO CreateProfileUser(UserDTO user) //{ // // var userDetail = user.TblUserDetails.First(); // AspNetUsers _users = _mapper.Map<AspNetUsers>(user); // _users.Id = Guid.NewGuid().ToString(); // DateTime now = DateTime.Now; // _users.LockoutEnd = now; // _context.AspNetUsers.Add(_users); // _context.SaveChanges(); // var _usersDTOs = _mapper.Map<UserDTO>(_users); // return _usersDTOs; //} public EmployeeDTO CreateProfileemployee(EmployeeDTO emp, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); // var userDetail = user.TblUserDetails.First(); var _empls = _mapper.Map <TblEmployees>(emp); //_empls.Empid = Guid.NewGuid().ToString(); //DateTime now = DateTime.Now; //_users.LockoutEnd = now; _context.TblEmployees.Add(_empls); _context.SaveChanges(); var _empDTOs = _mapper.Map <EmployeeDTO>(_empls); return(_empDTOs); }
public async Task <SendOtpResponse> ResetOTP(SendOtp sendOtp, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); var user = _context.AspNetUsers.SingleOrDefault(x => x.Email == sendOtp.Email); try { if (user != null) { EmailTest emailTest = new EmailTest(); Random random = new Random(); int otp = random.Next(1001, 9999); var chkotp = _context.TblSendOtp.Where(a => a.Email == sendOtp.Email); if (chkotp != null) { foreach (var item in chkotp) { _context.TblSendOtp.Remove(item); } } sendOtp.UserId = user.Id; sendOtp.UserName = user.UserName; sendOtp.Otp = otp.ToString(); TblSendOtp _otp = _mapper.Map <TblSendOtp>(sendOtp); _context.TblSendOtp.Add(_otp); _context.SaveChanges(); emailTest.To = sendOtp.Email; emailTest.Subject = "Password reset for MICA"; emailTest.Message = "Dear User,\n" + " " + "\n" + " OTP for re-setting your MICA password is: " + otp + " " + "\n" + "\nThanks & Regards:\n" + " " + "MICA Team"; await SendEmailAsync(emailTest); } else { return(new SendOtpResponse { Status = BusinessStatus.NotFound, sendOtp = sendOtp, ResponseMessage = $"Please enter registered Email-ID" }); } } catch (Exception ex) { throw; } return(new SendOtpResponse { Status = BusinessStatus.Ok, sendOtp = sendOtp, ResponseMessage = $"OTP Sent Successfully!" }); }
public UserDTO ChangeMobileNumber(UserDTO userDTO, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); AspNetUsers _aspNet = _mapper.Map <AspNetUsers>(userDTO); var _aspUsers = _context.AspNetUsers.SingleOrDefault(x => x.Id == _aspNet.Id); var _users = _context.TblUserDetails.SingleOrDefault(x => x.UserId == _aspNet.Id); _aspUsers.PhoneNumber = userDTO.PhoneNumber; _users.ContactNumber = userDTO.PhoneNumber; _context.AspNetUsers.Update(_aspUsers); _context.TblUserDetails.Update(_users); _context.SaveChanges(); var _usersDTOs = _mapper.Map <UserDTO>(_aspUsers); return(_usersDTOs); }
/// <summary> /// Saves the assign permission. /// </summary> /// <param name="permissionIds">The permission ids.</param> /// <param name="apiContext">The API context.</param> /// <returns></returns> public UserPermissionResponse SaveAssignPermission(UserRolesPermissionDTO permissionIds, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); TblUserPermissions userPermissions = null; foreach (var item in permissionIds.RolePermissionIds) { var newPermission = item.PermissionIds.ToList(); var existingPerm = _context.TblUserPermissions.Where(t => t.UserId == permissionIds.UserId && t.UserorRole == "User" && t.RoleId == item.RoleId).ToList(); //Delete which are not in current permissions-- var delPermission = existingPerm.Where(m => !item.PermissionIds.Contains((int)m.PermissionId)).ToList(); foreach (var perm in delPermission) { _context.Remove(perm); existingPerm.Remove(perm); } var includedPermission = existingPerm.Where(m => item.PermissionIds.Contains((int)m.PermissionId)).ToList(); foreach (var incPerm in includedPermission) { newPermission.Remove((int)incPerm.PermissionId); } //Add new record foreach (var permissionId in newPermission) { userPermissions = new TblUserPermissions(); userPermissions.UserId = permissionIds.UserId; userPermissions.PermissionId = permissionId; userPermissions.RoleId = item.RoleId; userPermissions.UserorRole = "User"; // userPermissions.CreatedBy = CreatedBy; userPermissions.CreatedDate = DateTime.Now; userPermissions.Status = true; _context.TblUserPermissions.Add(userPermissions); } } _context.SaveChanges(); return(new UserPermissionResponse { Status = BusinessStatus.Created, Id = userPermissions?.UserPermissionsId.ToString(), ResponseMessage = $"Assigned Permissions successfully!!" }); }
public UserDTO ModifyUser(UserDTO usersDTOs, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); AspNetUsers _aspNet = _mapper.Map <AspNetUsers>(usersDTOs); //We Use .Include Function to add all Child Classes from a Parent Table //In this Case Parent table is AspNet Users (Primary Key) Child Table is UserDetails (foreign Key) // var _aspUsers = _context.AspNetUsers.Include<>.SingleOrDefault(x => x.Id == usersDTOs.Id); //var _aspUsers = _context.AspNetUsers.Include<TblUserDetails,> //.SingleOrDefault(x => x.Id == usersDTOs.Id); //if (_aspUsers != null) //{ // _aspUsers.PhoneNumber = usersDTOs.PhoneNumber; //_aspNet.TblUserDetails.Update(); _context.AspNetUsers.Update(_aspNet); _context.SaveChanges(); //} var _usersDTOs = _mapper.Map <UserDTO>(_aspNet); return(_usersDTOs); }
/// <summary> /// Assigns the permission. /// </summary> /// <param name="permissionIds">The permission ids.</param> /// <param name="apiContext">The API context.</param> /// <returns></returns> public UserPermissionResponse AssignPermission(UserPermissionDTO permissionIds, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); UserPermissionsDTO userPermissions = null; for (int i = 0; i < permissionIds.PermissionIds.Length; i++) { userPermissions = new UserPermissionsDTO(); userPermissions.UserId = permissionIds.UserId; userPermissions.PermissionId = Convert.ToInt16(permissionIds.PermissionIds[i]); userPermissions.UserorRole = "User"; // userPermissions.CreatedBy = CreatedBy; userPermissions.CreatedDate = DateTime.Now; userPermissions.Status = true; var _usersPer = _mapper.Map <TblUserPermissions>(userPermissions); _context.TblUserPermissions.Add(_usersPer); } _context.SaveChanges(); //return userPermissions; return(new UserPermissionResponse { Status = BusinessStatus.Created, perm = userPermissions, ResponseMessage = $"Assigned {userPermissions.PermissionId} Permissions successfully!!" }); }
public PasswordResponse ChangePassword(Password pass, ApiContext apiContext) { _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType); byte[] passwordHash; byte[] passwordSalt; var _aspUsers = _context.AspNetUsers.FirstOrDefault(x => x.Id == pass.Id); if (pass.IsChangePassword == true) { if (pass.NewPassword == pass.ConfirmPassword) { AspNetUsers _aspNet = _mapper.Map <AspNetUsers>(_aspUsers); if (string.IsNullOrWhiteSpace(pass.ConfirmPassword)) { throw new ArgumentException("Please enter valid password", "password"); } passwordSalt = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }; using (var hmac = new System.Security.Cryptography.HMACSHA512(passwordSalt)) { passwordHash = hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(pass.ConfirmPassword)); } _aspNet.PasswordHash = passwordHash; _context.AspNetUsers.Update(_aspNet); _context.SaveChanges(); var _usersDTOs = _mapper.Map <UserDTO>(_aspUsers); return(new PasswordResponse { Status = BusinessStatus.Created, passwd = pass, ResponseMessage = $"Password changed successfully!" }); } else { return(new PasswordResponse { Status = BusinessStatus.Error, ResponseMessage = $"Password not matching" }); } } else { if (pass.OldPassword != null) { // check if user exists if (_aspUsers == null) { return(null); } passwordSalt = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }; //// check if password is correct if (!Utilities.VerifyPasswordHash(pass.OldPassword, _aspUsers.PasswordHash, passwordSalt)) { return new PasswordResponse { Status = BusinessStatus.UnAuthorized, ResponseMessage = $"Please enter valid old password" } } ; //return null; if (pass.NewPassword == pass.ConfirmPassword) { AspNetUsers _aspNet = _mapper.Map <AspNetUsers>(_aspUsers); if (string.IsNullOrWhiteSpace(pass.ConfirmPassword)) { throw new ArgumentException("Please enter valid password", "password"); } passwordSalt = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }; using (var hmac = new System.Security.Cryptography.HMACSHA512(passwordSalt)) { passwordHash = hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(pass.ConfirmPassword)); } _aspNet.PasswordHash = passwordHash; _context.AspNetUsers.Update(_aspNet); _context.SaveChanges(); var _usersDTOs = _mapper.Map <UserDTO>(_aspUsers); return(new PasswordResponse { Status = BusinessStatus.Created, passwd = pass, ResponseMessage = $"Password changed successfully!" }); } else { return(new PasswordResponse { Status = BusinessStatus.InputValidationFailed, passwd = pass, ResponseMessage = $"Password not matching" }); } } else { return(new PasswordResponse { Status = BusinessStatus.UnAuthorized, ResponseMessage = $"Please enter valid old password" }); } } }