예제 #1
0
        public AspNetUsersDTO Authenticate(LoginDTO loginDTO)
        {
            _context = (MICAUMContext)DbManager.GetContext(loginDTO.ProductType, loginDTO.ServerType);
            var user = _context.AspNetUsers.SingleOrDefault(x => x.UserName == loginDTO.Username);

            // check if username exists
            if (user == null)
            {
                return(null);
            }

            byte[] passwordSalt = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };

            //// check if password is correct
            if (!Utilities.VerifyPasswordHash(loginDTO.Password, user.PasswordHash, passwordSalt))
            {
                return(null);
            }

            // authentication successful
            AspNetUsersDTO userDTO = _mapper.Map <AspNetUsersDTO>(user);

            return(userDTO);
            //  return new LoginResponse { Status = BusinessStatus.Created, log = user, ResponseMessage = $"Product code {user.Username} created successfully!! " };
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        public UserLoginResponse GetUserType(string username, string productType, string serverType)
        {
            UserLoginType userLoginType = new UserLoginType();

            _context = (MICAUMContext)DbManager.GetContext(productType, serverType);
            // _context = new MICAUMContext(DbManager.GetDbConnectionString(productType));
            var user = _context.AspNetUsers.SingleOrDefault(x => x.UserName == username);

            if (user != null)
            {
                userLoginType.IsFirstTimeLogin = user.FirstTimeLogin;
                userLoginType.Id = user.Id;
                var loginProvider = _context.AspNetUserTokens.Where(x => x.UserId == user.Id).FirstOrDefault();
                if (loginProvider != null)
                {
                    userLoginType.LoginProvider = loginProvider.LoginProvider;
                }
                else
                {
                    userLoginType.LoginProvider = "Form";
                }

                //userLoginType.Status = BusinessStatus.Ok;
                return(new UserLoginResponse {
                    Status = BusinessStatus.Ok, userLogin = userLoginType, Id = userLoginType.IsFirstTimeLogin.ToString(), ResponseMessage = $"UserName Exist"
                });
            }
            else
            {
                return(new UserLoginResponse {
                    Status = BusinessStatus.NotFound, ResponseMessage = $"UserName does not Exist"
                });
            }
        }
        public TblUserDetails GetUserByUserId(string Id, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            var _userDetails = _context.TblUserDetails.SingleOrDefault(x => x.UserId == Id);

            return(_userDetails);
        }
        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"
                });;
            }
        }
예제 #6
0
        public IEnumerable <MasPermissionDTO> GetMasPermissions(string perType, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            IEnumerable <TblMasPermission> _permissions = _context.TblMasPermission.Where(per => per.ItemType == perType);

            var _masPermissionDTOs = GetMenuMasPermissions(_permissions, perType);

            //IEnumerable<MasPermissionDTO> _masPermissionDTOs = _permissions
            //                .Where(c => (c.ParentId == 0 && c.ItemType == perType))
            //                .Select(c => new MasPermissionDTO()
            //                {
            //                    PermissionId = c.PermissionId,
            //                    ItemType = c.ItemType,
            //                    ParentId = c.ParentId,
            //                    MenuId = c.MenuId,
            //                    ItemDescription = c.ItemDescription,
            //                    Url = c.Url,
            //                    PathTo = c.PathTo,
            //                    Collapse = c.Collapse,
            //                    State = c.State,
            //                    Mini = c.Mini,
            //                    Component = c.Component,
            //                    ChildrenDTO = GetChildren(_permissions, c.PermissionId)
            //                });
            //IEnumerable<MasPermissionDTO> _masPermissionDTOs = _mapper.Map<IEnumerable<MasPermissionDTO>>(_permissions);
            return(_masPermissionDTOs);
        }
        public IEnumerable <UserDetailsDTO> SearchUser(UserSearchDTO searchRequest, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            var _users = _context.TblUserDetails.OrderByDescending(u => u.CreatedDate).Select(x => x);

            if (!string.IsNullOrEmpty(searchRequest.FirstName))
            {
                _users = _users.Where(u => u.FirstName.Contains(searchRequest.FirstName));
            }
            if (!string.IsNullOrEmpty(searchRequest.PanNo))
            {
                _users = _users.Where(u => u.PanNo.Contains(searchRequest.PanNo));
            }
            if (!string.IsNullOrEmpty(searchRequest.EmployeeNumber))
            {
                _users = _users.Where(u => u.EmployeeNumber == searchRequest.EmployeeNumber);
            }
            if (!string.IsNullOrEmpty(searchRequest.EmailId))
            {
                _users = _users.Where(u => u.Email == searchRequest.EmailId);
            }
            if (searchRequest.PartnerId > 0)
            {
                _users = _users.Where(u => u.PartnerId == searchRequest.PartnerId);
            }
            var _usersDTOs = _mapper.Map <List <UserDetailsDTO> >(_users);

            return(_usersDTOs);
        }
        // get Location
        public IEnumerable <ddDTO> GetLocation(string locationType, int parentID, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            IEnumerable <ddDTO> ddDTOs;

            switch (locationType)
            {
            case "State":
                ddDTOs = _context.TblMasState.Where(location => location.CountryId == parentID)
                         .Select(c => new ddDTO
                {
                    mID    = c.StateId,
                    mValue = c.StateName,
                    mType  = "State"
                });
                break;

            case "District":
                ddDTOs = _context.TblMasDistrict.Where(location => location.StateId == parentID)
                         .Select(c => new ddDTO
                {
                    mID    = c.DistrictId,
                    mValue = c.DistrictName,
                    mType  = "District"
                });
                break;

            case "City":
                ddDTOs = _context.TblMasCity.Where(location => location.DistrictId == parentID)
                         .Select(c => new ddDTO
                {
                    mID    = c.CityId,
                    mValue = c.CityName,
                    mType  = "City"
                });
                break;

            case "Pincode":
                ddDTOs = _context.TblMasPinCode.Where(location => location.CityId == parentID)
                         .Select(c => new ddDTO
                {
                    mID    = c.PincodeId,
                    mValue = c.Pincode,
                    mType  = "Pincode"
                });
                break;

            default:
                ddDTOs = _context.TblMasCountry.Select(location => location)
                         .Select(c => new ddDTO
                {
                    mID    = c.CountryId,
                    mValue = c.CountryName,
                    mType  = "Country"
                });
                break;
            }
            return(ddDTOs);
        }
        public IEnumerable <MasPermissionDTO> GetMasPermissions(string perType, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            IEnumerable <TblMasPermission> _permissions       = _context.TblMasPermission.Where(per => per.ItemType == perType);
            IEnumerable <MasPermissionDTO> _masPermissionDTOs = _mapper.Map <IEnumerable <MasPermissionDTO> >(_permissions);

            return(_masPermissionDTOs);
        }
예제 #10
0
        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!"
                });
            }
        }
예제 #11
0
        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 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 UserDTO SearchUserById(string userId, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            AspNetUsers _userd = _context.AspNetUsers.Where(user => user.Id == userId)
                                 .Include(add => add.TblUserDetails)
                                 .Include(add => add.TblUserAddress)
                                 .FirstOrDefault();
            var _UsrDTO = _mapper.Map <UserDTO>(_userd);

            return(_UsrDTO);
        }
예제 #14
0
        public IEnumerable <RolesDTO> GetRoles(ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            IEnumerable <AspNetRoles> _roles     = _context.AspNetRoles.Select(roles => roles);
            IEnumerable <RolesDTO>    _rolesDTOs = _mapper.Map <IEnumerable <RolesDTO> >(_roles);

            foreach (RolesDTO roles in _rolesDTOs)
            {
                roles.Label = roles.Name;
                roles.Value = roles.Id;
            }
            return(_rolesDTOs);
        }
예제 #15
0
        public IEnumerable <RolesDTO> GetUserRole(string userId, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            var userRoles = _context.AspNetUserRoles.Where(u => u.UserId == userId).Select(r => r.RoleId).ToArray();
            IEnumerable <AspNetRoles> _roles     = _context.AspNetRoles.Where(r => userRoles.Contains(r.Id)).Select(roles => roles);
            IEnumerable <RolesDTO>    _rolesDTOs = _mapper.Map <IEnumerable <RolesDTO> >(_roles);

            foreach (RolesDTO roles in _rolesDTOs)
            {
                roles.Label = roles.Name;
                roles.Value = roles.Id;
            }
            return(_rolesDTOs);
        }
        //get for master
        public IEnumerable <ddDTO> GetMaster(string lMasterlist, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            IEnumerable <ddDTO> ddDTOs;

            ddDTOs = _context.TblmasUmcommonTypes
                     .Select(c => new ddDTO
            {
                mID    = c.CommonTypeId,
                mValue = c.Value,
                mType  = c.MasterType
            });
            return(ddDTOs);
        }
        //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 EmployeeDTO SearchEmployee(int Empid, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            var _emp = _context.TblEmployees.SingleOrDefault(x => x.Empid == Empid);

            if (_emp != null)
            {
                TblEmployees _tblUserDetails = _mapper.Map <TblEmployees>(_emp);
                _context.TblEmployees.Find(_emp.Empid);
                var emplDTOs = _mapper.Map <EmployeeDTO>(_emp);
                return(emplDTOs);
            }
            else
            {
                return(null);
            }
        }
예제 #19
0
        public LoginResponse GenerateToken(AspNetUsersDTO user, string productType, string serverType)
        {
            LoginResponse loginResponse = new LoginResponse();

            _context = (MICAUMContext)DbManager.GetContext(productType, serverType);
            var userDetails = _context.TblUserDetails.FirstOrDefault(u => u.UserName == user.UserName);
            //var roleDetails = from ro in _context.AspNetRoles
            //                  join ur in _context.AspNetUserRoles on ro.Id equals ur.RoleId
            //                  where ur.UserId == user.Id
            //                  select ur;
            var roleName    = _context.AspNetRoles.FirstOrDefault(u => u.Id == userDetails.RoleId).Name;
            var issuer      = _config["Jwt:Issuer"];
            var audience    = _config["Jwt:Audience"];
            var expiry      = DateTime.Now.AddMinutes(120);
            var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));
            var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
            // Add standard claims
            var claims = new List <Claim>
            {
                new Claim("UserId", user.Id),
                new Claim("Email", user.Email),
                new Claim("OrgId", Convert.ToString(userDetails.OrganizationId)),
                new Claim("PartnerId", Convert.ToString(userDetails.PartnerId)),
                new Claim("Role", roleName),
                new Claim("Name", userDetails.FirstName),
                new Claim("UserName", userDetails.UserName),
                new Claim("ProductType", productType),
                new Claim("ServerType", serverType),
            };
            var token = new JwtSecurityToken(issuer: issuer, audience: audience, claims: claims,
                                             expires: DateTime.Now.AddMinutes(120), signingCredentials: credentials);

            var tokenHandler = new JwtSecurityTokenHandler();
            var stringToken  = tokenHandler.WriteToken(token);

            loginResponse.Token       = stringToken;
            loginResponse.UserId      = user.Id;
            loginResponse.RoleId      = userDetails.RoleId;
            loginResponse.UserName    = user.UserName;
            loginResponse.FirstName   = userDetails.FirstName;
            loginResponse.LastName    = userDetails.LastName;
            loginResponse.IsMale      = userDetails.GenderId == 1001 ? true : false;
            loginResponse.DisplayName = loginResponse.FirstName + "  " + loginResponse.LastName;
            loginResponse.Status      = BusinessStatus.Ok;
            return(loginResponse);
        }
        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);
        }
        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 UserEmailResponse UserEmailValidations(string emailid, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            var email = _context.AspNetUsers.Any(item => item.Email == emailid);

            if (email == true)
            {
                return(new UserEmailResponse {
                    Status = BusinessStatus.InputValidationFailed, ResponseMessage = $"Email ID already Exist"
                });
            }
            else
            {
                return(new UserEmailResponse {
                    Status = BusinessStatus.Ok
                });
            }
        }
        public IEnumerable <MasPermissionDTO> GetPermissions(string perType, string userId, string roleId, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            IEnumerable <TblMasPermission> _permissions = from maspermission in _context.TblMasPermission
                                                          join permission in
                                                          (from rolepermission in _context.TblUserPermissions
                                                           where rolepermission.RoleId == roleId &&
                                                           rolepermission.UserorRole == "Role"
                                                           select rolepermission.PermissionId)
                                                          .Except(
                from userpermission in _context.TblUserPermissions

                where userpermission.UserId == userId &&
                userpermission.UserorRole == "User"
                select userpermission.PermissionId
                ) on maspermission.PermissionId equals permission.Value
                                                          where maspermission.ItemType == perType
                                                          orderby maspermission.SortOrderBy ascending
                                                          select maspermission;

            IEnumerable <MasPermissionDTO> _masPermissionDTOs = _permissions
                                                                .Where(c => (c.ParentId == 0))
                                                                .Select(c => new MasPermissionDTO()
            {
                PermissionId    = c.PermissionId,
                ItemType        = c.ItemType,
                ParentId        = c.ParentId,
                MenuId          = c.MenuId,
                ItemDescription = c.ItemDescription,
                Label           = c.ItemDescription,
                Url             = c.Url,
                PathTo          = c.PathTo,
                Collapse        = c.Collapse,
                State           = c.State,
                Mini            = c.Mini,
                Icon            = c.Icon,
                Redirect        = c.Redirect,
                Component       = c.Component,
                Children        = GetChildren(_permissions, c.PermissionId)
            });

            //
            return(_masPermissionDTOs);
        }
        /// <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);
        }
예제 #26
0
        public static DbContext GetContext(string product, string connectionKey)
        {
            DbContext context            = null;
            string    dbConnectionString = DbConnectionManager.GetConnectionString(connectionKey);

            switch (product)
            {
            case "Mica":
                var optionsBuilder = new DbContextOptionsBuilder <MICAUMContext>();
                optionsBuilder.UseSqlServer(dbConnectionString);
                //DbContextOptions<MICAUMContext> dbContextOption = (DbContextOptions<MICAUMContext>)SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder(), dbConnectionString).Options;
                context = new MICAUMContext(optionsBuilder.Options);
                break;

            case "Avo":
                var avoOptionsBuilder = new DbContextOptionsBuilder <AVOUMContext>();
                avoOptionsBuilder.UseSqlServer(dbConnectionString);
                //DbContextOptions<MICAUMContext> dbContextOption = (DbContextOptions<MICAUMContext>)SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder(), dbConnectionString).Options;
                context = new AVOUMContext(avoOptionsBuilder.Options);
                break;

            case "Motor":
                //var motorOptionsBuilder = new DbContextOptionsBuilder<Mot>();
                //motorOptionsBuilder.UseSqlServer(dbConnectionString);
                ////DbContextOptions<MICAUMContext> dbContextOption = (DbContextOptions<MICAUMContext>)SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder(), dbConnectionString).Options;
                //context = new AVOUMContext(motorOptionsBuilder.Options);
                break;

            default:
                var optionsBuilderDefault = new DbContextOptionsBuilder <MICAUMContext>();
                optionsBuilderDefault.UseSqlServer(dbConnectionString);
                // DbContextOptions<MICAUMContext> dbDefaultContextOption = (DbContextOptions<MICAUMContext>)SqlServerDbContextOptionsExtensions.UseSqlServer(new DbContextOptionsBuilder(), dbConnectionString).Options;
                context = new MICAUMContext(optionsBuilderDefault.Options);
                break;
            }

            return(context);
        }
        /// <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 IEnumerable <MasPermissionDTO> GetUserPermissions(string perType, string userId, ApiContext apiContext)
        {
            _context = (MICAUMContext)DbManager.GetContext(apiContext.ProductType, apiContext.ServerType);
            var _roles = _context.AspNetUserRoles.Where(userrole => userrole.UserId == userId).Select(role => role.RoleId);

            IEnumerable <TblMasPermission> _permissions = from maspermission in _context.TblMasPermission
                                                          join permission in
                                                          (from rolepermission in _context.TblUserPermissions
                                                           where _roles.Contains(rolepermission.RoleId) &&
                                                           rolepermission.UserorRole == "Role"
                                                           select rolepermission.PermissionId)
                                                          .Except(
                from userpermission in _context.TblUserPermissions
                where userpermission.UserId == userId &&
                userpermission.UserorRole == "User"
                select userpermission.PermissionId
                ) on maspermission.PermissionId equals permission.Value
                                                          where maspermission.ItemType == perType
                                                          select maspermission;

            IEnumerable <MasPermissionDTO> _masPermissionDTOs = _mapper.Map <IEnumerable <MasPermissionDTO> >(_permissions);

            return(_masPermissionDTOs);
        }
예제 #29
0
 public AvoRoleService(MICAUMContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
        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"
                    });
                }
            }
        }