public async Task <bool> Signup(SignUpAC signupAC) { using (IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) { try { connection.Open(); var id = Guid.NewGuid(); var password = PasswordHashUtill.HashPassword(signupAC.Password); var securityStamp = Guid.NewGuid(); var insertQuery = "INSERT INTO AspNetUsers values ('" + id + "','" + signupAC.Email + "',0,'" + password + "','" + securityStamp + "',null,0,0,null,1,0,'" + signupAC.Email + "');"; await connection.ExecuteScalarAsync(insertQuery); var newUserQuery = "select MAX(Id) from AspNetUsers"; var newUserId = await connection.ExecuteScalarAsync <string>(newUserQuery); var userRoleQuery = "Insert into AspNetUserRoles values('" + newUserId + "',1)"; await connection.ExecuteScalarAsync(userRoleQuery); return(true); } catch (Exception ex) { throw ex; } } }
/// <summary> /// This method is use for login user /// </summary> /// <param name="loginDTO">Login DTOs pass</param> /// <returns></returns> public async Task <BaseResponse> ValidateUserAsync(LoginDTO loginDTO) { try { string ConnectionString = _config[_iStringConstants.MyConnectionString]; BaseResponse baseResponse = new BaseResponse(); UserTokenDTO userTokenAC = new UserTokenDTO(); using (DeepakdbContext deepakDBContext = new DeepakdbContext()) { /*var parameterOut=new SqlParameter * { * ParameterName= * }*/ var data = await deepakDBContext.UserDetail.FromSqlRaw("spGetUserDetailByEmail @Email=@p0", parameters : new[] { loginDTO.Email }).ToListAsync(); if (data != null) { data.ForEach(x => new UserTokenDTO() { Id = x.Id, FirstName = x.FirstName, LastName = x.LastName, ZipCode = x.ZipCode, Email = x.Email, MobileNumber = x.MobileNumber, Password = x.Password }); if (PasswordHashUtill.VerifyHashedPassword(userTokenAC.Password, loginDTO.Password)) { baseResponse.StatusCode = (int)EnumList.ResponseType.Success; baseResponse.Data = userTokenAC; } else { baseResponse.Message = _iStringConstants.InvalidPassword; baseResponse.StatusCode = (int)EnumList.ResponseType.Error; baseResponse.Data = null; } } else { baseResponse.Message = _iStringConstants.LoginCredentailWrong; baseResponse.StatusCode = (int)EnumList.ResponseType.Error; baseResponse.Data = null; } return(baseResponse); } } catch (Exception ex) { throw ex; } }
public async Task <BaseResponseModel> ValidateUserAsync(LoginAC loginAC) { BaseResponseModel baseResponseModel = new BaseResponseModel(); UserTokenAC userTokenAC = new UserTokenAC(); using (IDbConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) { try { var existingUserQuery = "select * from AspNetUsers where Email='" + loginAC.Email + "'"; var userData = connection.Query(existingUserQuery).FirstOrDefault(); if (userData != null) { if (PasswordHashUtill.VerifyHashedPassword(userData.PasswordHash, loginAC.Password)) { userTokenAC.Id = userData.Id; userTokenAC.FullName = userData.UserName; userTokenAC.Email = userData.Email; baseResponseModel.StatusCode = (int)EnumList.ResponseType.Success; baseResponseModel.Data = userTokenAC; } else { baseResponseModel.Message = StringConstant.InvalidPassword; baseResponseModel.StatusCode = (int)EnumList.ResponseType.Error; baseResponseModel.Data = null; } } else { baseResponseModel.Message = StringConstant.LoginCredentailWrong; baseResponseModel.StatusCode = (int)EnumList.ResponseType.Error; baseResponseModel.Data = null; } return(baseResponseModel); } catch (Exception ex) { throw; } } }
/// <summary> /// This method is use for new user signup /// </summary> /// <param name="userDetailDTO"></param> /// <returns></returns> public async Task <BaseResponse> SignUpAsync(UserDetailDTO userDetailDTO) { try { //string ConnectionString = _config[_iStringConstants.MyConnectionString]; BaseResponse baseResponse = new BaseResponse(); UserTokenDTO userTokenAC = new UserTokenDTO(); using (DeepakdbContext deepakDBContext = new DeepakdbContext()) { //deepakDBContext.Query<T>().AsTracking(). var data = await Task.Run(() => deepakDBContext .Database.ExecuteSqlRaw("spInsertUserDetail @FirstName=@p0, @LastName=@p1,@Email=@p2,@Password=@p3,@MobileNumber=@p4,@Address_Line1=@p5,@Address_Line2=@p6, @ZipCode=@p7, @CreatedBy=@p8", parameters: new [] { userDetailDTO.FirstName, userDetailDTO.LastName, userDetailDTO.Email, PasswordHashUtill.HashPassword(userDetailDTO.Password), userDetailDTO.MobileNumber, userDetailDTO.AddressLine1, userDetailDTO.AddressLine2, userDetailDTO.ZipCode.ToString(), userDetailDTO.CreatedBy } /*new SqlParameter("@FirstName", userDetailDTO.FirstName), * new SqlParameter("@LastName", userDetailDTO.FirstName), * new SqlParameter("@Email", userDetailDTO.Email), * new SqlParameter("@Password",PasswordHashUtill.HashPassword( userDetailDTO.Password)), * new SqlParameter("@MobileNumber", userDetailDTO.MobileNumber), * new SqlParameter("@Address_Line1", userDetailDTO.AddressLine1), * new SqlParameter("@Address_Line2", userDetailDTO.AddressLine2), * new SqlParameter("@ZipCode", userDetailDTO.ZipCode), * new SqlParameter("@CreatedBy", userDetailDTO.CreatedBy)*/ )); if (data != null) { baseResponse.StatusCode = 1; baseResponse.Message = _iStringConstants.AddedSuccessfully; // Need to ask how to get DBCONTEXT status code from store procedure } if (baseResponse.StatusCode == 1) { return(StatusBuilder.ResponseSuccessStatus(null, baseResponse.Message)); } return(StatusBuilder.ResponseFailStatus(null, baseResponse.Message)); } } catch (Exception ex) { throw ex; } }