コード例 #1
0
        public bool UpdateUserReputation(string username, double reputationVal,string type,string subType)
        {
            var userReputation = _db.UserReputations.SingleOrDefault(x => x.username == username);            
            if (userReputation == null)
            {
                var userReputationData = new UserReputation
                {
                    username = username,
                    ReputationScore = Convert.ToString(reputationVal),
                    UserBadge = Constants.NA
                };
                _db.UserReputations.Add(userReputationData);
            }
            else
            {
                userReputation.ReputationScore = Convert.ToString(Convert.ToDouble(userReputation.ReputationScore) + reputationVal);
            }

            String descriptionString = Constants.NA;
            if (reputationVal < 0)
                descriptionString = Constants.reputationDeducted;
            var UserReputationMappingData = new UserReputationMapping
            {
                DateTime = DateTime.Now,
                description = descriptionString,
                type = type,
                subType = subType,
                username = username,
                reputation = Convert.ToString(reputationVal)
            };
            _db.UserReputationMappings.Add(UserReputationMappingData);
            
            try
            {
                _db.SaveChanges();
                return true;
            }
            catch (DbEntityValidationException e)
            {
                DbContextException.LogDbContextException(e);
                return false;
            }
        }
コード例 #2
0
        public bool UpdateUserBalance(string userType,string username, double approved, double pending,double averageReputationScore, string paymentMode, string title, string type, string subType, bool isDollar)
        {
            var userBalance = _db.UserEarnings.SingleOrDefault(x => x.username == username && x.userType == userType);
            string currency = Constants.currency_INR;
            if (userType == Constants.userType_client)
            {
                 currency = Constants.currency_Dollar;
            }               

            bool addToUserBalanceHistory = approved > 0;
            if (isDollar)
            {
                approved *= (Convert.ToDouble(Convert.ToString(ConfigurationManager.AppSettings["dollarToRupeesValue"])));
                pending *= (Convert.ToDouble(Convert.ToString(ConfigurationManager.AppSettings["dollarToRupeesValue"])));
            }            
            if (userBalance == null)
            {
                var UserEarningData = new UserEarning
                {
                    username = username,
                    total = Convert.ToString(Convert.ToDouble(approved) + Convert.ToDouble(pending)),
                    approved = Convert.ToString(Convert.ToDouble(approved)),
                    pending = Convert.ToString(Convert.ToDouble(pending)),
                    currency = currency,
                    userType = userType
                };
                _db.UserEarnings.Add(UserEarningData);
            }
            else
            {
                userBalance.total = Convert.ToString(Convert.ToDouble(userBalance.total) + Convert.ToDouble(approved) + Convert.ToDouble(pending));
                userBalance.approved = Convert.ToString(Convert.ToDouble(userBalance.approved) + Convert.ToDouble(approved));
                userBalance.pending = Convert.ToString(Convert.ToDouble(userBalance.pending) + Convert.ToDouble(pending));                 
            }

            if (addToUserBalanceHistory)
            {
                var userEarningHistoryUpdate = new UserEarningHistory
                {
                    amount = Convert.ToString(approved),
                    dateTime = DateTime.Now,
                    paymentMode = paymentMode,
                    subtype = subType,
                    type = type,
                    title = title,
                    username = username,
                    userType = userType,
                    currency = currency
 
                };

                _db.UserEarningHistories.Add(userEarningHistoryUpdate);

                if (type == Constants.type_survey)
                {
                    var userReputation = _db.UserReputations.SingleOrDefault(x => x.username == username);
                    var reputationScore = Math.Round(((approved * averageReputationScore)/5),2);
                    if (userReputation == null)
                    {
                        var userReputationData = new UserReputation
                        {
                            username = username,
                            ReputationScore = Convert.ToString(reputationScore),
                            UserBadge = Constants.NA
                        };
                        _db.UserReputations.Add(userReputationData);
                    }
                    else
                    {
                        userReputation.ReputationScore = Convert.ToString(Convert.ToDouble(userReputation.ReputationScore)+reputationScore);
                    }
                    var UserReputationMappingData = new UserReputationMapping
                    {
                        DateTime = DateTime.Now,
                        description = Constants.NA,
                        type = type,
                        subType = subType,
                        username = username,
                        reputation = Convert.ToString(reputationScore)
                    };
                    _db.UserReputationMappings.Add(UserReputationMappingData);

                    //synchronous call in thread.
                    new UserNotificationService().SendUserSurveyAcceptanceMessage(username, "You Have Earned Reputation:" + Convert.ToString(reputationScore) + " <br/> Money: " + Convert.ToString(approved) + "<br/> From Survey - " + title);
                }                
            }

            
            try
            {
                _db.SaveChanges();                        
                return true;
            }
            catch (DbEntityValidationException e)
            {
                DbContextException.LogDbContextException(e);
                return false;                  
            }
        }