Exemplo n.º 1
0
        public override void OnActionExecuting(ActionExecutingContext actionExecutedContext)
        {
            try
            {
                var email = actionExecutedContext.HttpContext.User.Claims.Where(c => c.Type == ClaimTypes.Email)
                            .Select(c => c.Value).SingleOrDefault();
                email = "*****@*****.**";
                if (!string.IsNullOrEmpty(email))
                {
                    var query = new Dictionary <string, string> {
                        { "Email", email }
                    };
                    var userBusiness = new UserBusiness.UserBusiness(_repositoryFactory);

                    var userModel = userBusiness.GetUserInfo(query);
                    connection.Close();
                    if (userModel != null)
                    {
                        actionExecutedContext.RouteData.Values.Add("UserModel", userModel);
                        return;
                    }
                }

                actionExecutedContext.Result = new JsonResult(CreateDataError(MessageApiError.USER_NOT_EXIT));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                actionExecutedContext.Result = new JsonResult(CreateDataError(MessageApiError.USER_NOT_EXIT));
            }
        }
Exemplo n.º 2
0
        public ReturnObject PortfolioValueHistory(string condition)
        {
            var email = User.Claims.Where(c => c.Type == ClaimTypes.Email).Select(c => c.Value).SingleOrDefault();
            var query = new Dictionary <string, string> {
                { "Email", email }
            };


            var userModel = _userBusiness.GetUserInfo(query);

            if (userModel == null)
            {
                //return error
                return(new ReturnObject
                {
                    Status = Status.STATUS_ERROR,
                    Message = "User not exist in DB"
                });
            }

            var userid      = userModel.Id;
            var currentTime = CommonHelper.GetUnixTimestamp();

            if (!Time.SECOND_COUNT_IN_PERIOD.ContainsKey(condition))
            {
                return(new ReturnObject
                {
                    Status = Status.STATUS_ERROR,
                    Message = "Data not found with condition " + condition
                });
            }

            return(Result(userid, currentTime - Time.SECOND_COUNT_IN_PERIOD[condition], currentTime,
                          condition == DashboardConfig.CURRENT ? condition : null));
        }
Exemplo n.º 3
0
        public void UserInfo()
        {
            Console.WriteLine("start");
            var repositoryConfig = new RepositoryConfiguration
            {
                ConnectionString = AppSettingHelper.GetDbConnection()
            };

            Console.WriteLine("New Address");
            PersistenceFactory = new VakapayRepositoryMysqlPersistenceFactory(repositoryConfig);
            var userBus = new UserBusiness.UserBusiness(PersistenceFactory);

            var search =
                new Dictionary <string, string>
            {
                { "Email", "" }
            };
            var resultCreated = userBus.GetUserInfo(search);

            Console.WriteLine(JsonHelper.SerializeObject(resultCreated));
        }
Exemplo n.º 4
0
        public ReturnObject GetTransactions(int?limit = null)
        {
            try
            {
                var email = User.Claims.Where(c => c.Type == ClaimTypes.Email).Select(c => c.Value).SingleOrDefault();
                var query = new Dictionary <string, string> {
                    { "Email", email }
                };


                var userModel = _userBusiness.GetUserInfo(query);

                if (userModel == null)
                {
                    //return error
                    return(new ReturnObject
                    {
                        Status = Status.STATUS_ERROR,
                        Message = "User not exist in DB"
                    });
                }

                var userId = userModel.Id;

                var bitcoinDepositTrxRepo =
                    new BitcoinDepositTransactionRepository(_repositoryFactory.GetOldConnection());
                var bitcoinWithdrawTrxRepo =
                    new BitcoinWithdrawTransactionRepository(_repositoryFactory.GetOldConnection());
                var ethereumDepositTrxRepo =
                    new EthereumDepositTransactionRepository(_repositoryFactory.GetOldConnection());
                var ethereumWithdrawTrxRepo =
                    new EthereumWithdrawnTransactionRepository(_repositoryFactory.GetOldConnection());
                var vakacoinDepositTrxRepo =
                    new VakacoinDepositTransactionRepository(_repositoryFactory.GetOldConnection());
                var vakacoinWithdrawTrxRepo =
                    new VakacoinWithdrawTransactionRepository(_repositoryFactory.GetOldConnection());

                var activities = new List <RecentActivity>();

                activities.AddRange(ProcessTransactions(bitcoinDepositTrxRepo.FindTransactionsByUserId(userId),
                                                        DashboardConfig.BITCOIN, false));
                activities.AddRange(ProcessTransactions(bitcoinWithdrawTrxRepo.FindTransactionsByUserId(userId),
                                                        DashboardConfig.BITCOIN, true));

                activities.AddRange(ProcessTransactions(ethereumDepositTrxRepo.FindTransactionsByUserId(userId),
                                                        DashboardConfig.ETHEREUM, false));
                activities.AddRange(ProcessTransactions(ethereumWithdrawTrxRepo.FindTransactionsByUserId(userId),
                                                        DashboardConfig.ETHEREUM, true));

                activities.AddRange(ProcessTransactions(vakacoinDepositTrxRepo.FindTransactionsByUserId(userId),
                                                        DashboardConfig.VAKACOIN, false));
                activities.AddRange(ProcessTransactions(vakacoinWithdrawTrxRepo.FindTransactionsByUserId(userId),
                                                        DashboardConfig.VAKACOIN, true));

                var sortedActivities = activities.OrderByDescending(o => o.TimeStamp).ToList();

                if (limit != null && limit > 0 && limit < sortedActivities.Count)
                {
                    sortedActivities = sortedActivities.GetRange(0, (int)limit);
                }

                return(new ReturnObject
                {
                    Status = Status.STATUS_SUCCESS,
                    Data = JsonHelper.SerializeObject(sortedActivities)
                });
            }
            catch (Exception e)
            {
                return(new ReturnObject
                {
                    Status = Status.STATUS_ERROR,
                    Message = e.Message
                });
            }
        }
Exemplo n.º 5
0
        public async Task <string> GetCurrentUser()
        {
            try
            {
                var email = User.Claims.Where(c => c.Type == ClaimTypes.Email).Select(c => c.Value)
                            .SingleOrDefault();

                if (string.IsNullOrEmpty(email))
                {
                    return(CreateDataError("Can't not email"));
                }

                var query = new Dictionary <string, string> {
                    { "Email", email }
                };


                var userModel = _userBusiness.GetUserInfo(query);

                var ip = HelpersApi.GetIp(Request);
                IpGeographicalLocation location = null;
                if (!string.IsNullOrEmpty(ip))
                {
                    //get location for ip
                    location = await IpGeographicalLocation.QueryGeographicalLocationAsync(ip);
                }

                if (userModel == null)
                {
                    var jsonUser = User.Claims.Where(c => c.Type == "userInfo").Select(c => c.Value)
                                   .SingleOrDefault();

                    var userClaims = Vakapay.Models.Entities.User.FromJson(jsonUser);
                    userClaims.Notifications = "1,2,3";
                    if (location != null)
                    {
                        if (location.Currency?.Code != null)
                        {
                            userClaims.CurrencyKey = location.Currency.Code;
                        }

                        if (location.TimeZone?.Id != null)
                        {
                            userClaims.TimezoneKey = location.TimeZone.Id;
                        }
                    }

                    var resultData = _userBusiness.Login(userClaims);

                    if (resultData.Status == Status.STATUS_ERROR)
                    {
                        return(CreateDataError(resultData.Message));
                    }


                    userModel = Vakapay.Models.Entities.User.FromJson(resultData.Data);


                    return(_walletBusiness.MakeAllWalletForNewUser(userModel).ToJson());
                }

                if (string.IsNullOrEmpty(ip))
                {
                    return new ReturnObject
                           {
                               Status = Status.STATUS_SUCCESS,
                               Data   = Vakapay.Models.Entities.User.ToJson(userModel)
                           }
                }
                .ToJson();

                UpdateCurrencyAndTimeZone(userModel, location);

                var browser = HelpersApi.GetBrowser(Request);

                var confirmedDevices = new ConfirmedDevices
                {
                    Browser  = browser,
                    Ip       = ip,
                    Location = location != null && !string.IsNullOrEmpty(location.CountryName)
                        ? location.City + "," + location.CountryName
                        : "localhost",
                    UserId = userModel.Id
                };

                var search = new Dictionary <string, string> {
                    { "Ip", ip }, { "Browser", browser }
                };


                //save devices
                var checkConfirmedDevices = _userBusiness.GetConfirmedDevices(search);
                if (checkConfirmedDevices == null)
                {
                    _userBusiness.SaveConfirmedDevices(confirmedDevices);
                }


                userModel.SecretAuthToken = null;
                userModel.TwoFactorSecret = null;
                userModel.SecondPassword  = null;
                userModel.Id          = null;
                userModel.PhoneNumber = !string.IsNullOrEmpty(userModel.PhoneNumber)
                    ? "*********" + userModel.PhoneNumber.Remove(0, 9)
                    : null;
                if (userModel.Birthday.Contains("1900-01-01"))
                {
                    userModel.Birthday = null;
                }

                return(new ReturnObject
                {
                    Status = Status.STATUS_SUCCESS,
                    Data = userModel.ToJson()
                }.ToJson());
            }