Exemplo n.º 1
0
        public bool AddOTP(ForgotPasswordBindingModel model)
        {
            var mobile = entities.AspNetUsers.Where(x => x.PhoneNumber == model.PhoneNumber).FirstOrDefault();

            if (mobile != null)
            {
                using (QuizAppEntities entities = new QuizAppEntities())
                {
                    var       OTP       = GeneralFunctions.GetOTP();
                    MobileOTP mobileOTP = new MobileOTP()
                    {
                        PhoneNumber = model.PhoneNumber,
                        OTP         = OTP,
                        CreatedDate = DateTime.UtcNow.AddHours(5.00).AddMinutes(30.00),
                    };

                    entities.MobileOTPs.Add(mobileOTP);
                    var OtpSend = sms_api_callAsync(model.PhoneNumber, OTP.ToString());
                    return(entities.SaveChanges() > 0);
                }
            }
            else
            {
                return(false);
            }
        }
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);
            }
        }