Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }