public TokenResult GenerateToken(string PhoneNumber, string Password, string UserId, string RefreshTokenStr) { JavaScriptSerializer jss = new JavaScriptSerializer(); TokenResult tokenResult = new TokenResult(); tokenResult = jss.Deserialize <TokenResult>(GeneralFunctions.GETDataNew(Models.Constants.Token, "grant_type=password&username="******"&password=" + Password)); var RefreshToken = new RefreshToken(); using (AuthRepository _repo = new AuthRepository()) { if (string.IsNullOrEmpty(RefreshTokenStr)) { RefreshToken = _repo.AddRefreshToken(UserId, tokenResult.access_token); tokenResult.refresh_token = RefreshToken.ProtectedTicket; } else { RefreshToken refreshToken = new RefreshToken(); refreshToken = _ctx.RefreshTokens.Where(x => x.UserId == UserId && x.ProtectedTicket == RefreshTokenStr).FirstOrDefault(); if (refreshToken != null) { refreshToken.ExpiresUtc = DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00).AddHours(Constants.TimeOfExpireRefreshTokenHours); refreshToken.IssuedUtc = DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00); _ctx.SaveChanges(); } tokenResult.refresh_token = RefreshTokenStr; } tokenResult.id = UserId; } tokenResult.result = true; return(tokenResult); }
public TokenResult RegisterUser(RegisterBindingModel model) { try { var Otp = GeneralFunctions.GetOTP(); //Set By Defaulte Admin Refferal Code When User Not Use Any Refferal Code if (model.UsedReferalCode == null || model.UsedReferalCode == "" || model.UsedReferalCode == string.Empty) { string AdminId = ConfigurationManager.AppSettings["Admin"].ToString(); model.UsedReferalCode = ConfigurationManager.AppSettings["RefferalCode"].ToString(); } var ParentIDs = GetParentsIDsFromReferalCode(model.UsedReferalCode, model.UserId); using (QuizAppEntities entities = new QuizAppEntities()) { User registerUser = new User() { Name = model.Name, Password = model.Password, UserID = model.UserId, CreatedDate = DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00), LastUpdateDate = DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00), ReferalCode = GeneralFunctions.GetReferalCode(), DeviceID = model.DeviceID, IP = model.IP, isActive = true, isBlocked = false, NotificationKey = model.NotificationKey, otp = Otp.ToString(), ParentIDs = ParentIDs, Platform = model.Platform, UsedReferalCode = model.UsedReferalCode.ToLower(), }; var OtpSend = sms_api_callAsync(model.PhoneNumber, Otp.ToString()); MobileOTP mobileOTP = new MobileOTP() { PhoneNumber = model.PhoneNumber, OTP = Otp, CreatedDate = DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00) }; entities.MobileOTPs.Add(mobileOTP); entities.Users.Add(registerUser); int updatedRow = entities.SaveChanges(); var UserId = registerUser.UserID; if (updatedRow >= 1) { //Add Registration Income var jsonFilePath = HttpContext.Current.Server.MapPath("~/Models/JsonFile/LevelEarningMasterUser.json"); EaningHeadModel earningHeads = new EaningHeadModel(); using (StreamReader r = new StreamReader(jsonFilePath)) { string json = r.ReadToEnd(); earningHeads = JsonConvert.DeserializeObject <EaningHeadModel>(json); } var data = (from U in entities.Users join A in entities.AspNetUsers on U.UserID equals A.Id where U.UserID == UserId select new UserTransactionModel() { UserName = U.Name, MobileNumber = A.UserName }).FirstOrDefault(); var uniqueKey = $"{UserId}~{DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00).ToString("dd-MM-yyy")}~Earning"; Transaction transaction = new Transaction() { UserID = UserId, transactionDateTime = DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00), UniqueKey = uniqueKey, paymentStatus = "Earning", amount = earningHeads.RegistrationIncome, comment = "Registration Income Amount", username = data.UserName, mobilenumber = data.MobileNumber }; entities.Transactions.Add(transaction); entities.SaveChanges(); AuthRepository authRepository = new AuthRepository(); return(authRepository.GenerateToken(model.PhoneNumber, model.Password, model.UserId, "")); } else { TokenResult result = new TokenResult(); result.result = false; result.error_message = "User registration failed."; return(result); } } } catch (Exception ex) { TokenResult result = new TokenResult(); result.result = false; result.error_message = ex.Message; return(result); } }