示例#1
0
        /// <summary>
        /// Updates bonus point and score.
        /// </summary>
        /// <param name="point">Extra point to bonus and score.</param>
        public void UpdatePoint(int point)
        {
            try
            {
                var email = _customerService.GetCurrentContact()?.Email;
                if (string.IsNullOrEmpty(email))
                {
                    return;
                }

                var currentRecipientListId = GetRecipientListId(recipientName);

                // Get current point of recipient
                var currentPoints = _campaignRecipient.GetRecipientDetails(currentRecipientListId, email, new List <string>()
                {
                    bonusPoints, score
                }).ToArray();

                // Update recipient
                if (currentRecipientListId != -1)
                {
                    var b = long.TryParse(currentPoints[0], out var oldBonusPoints);
                    var s = long.TryParse(currentPoints[1], out var oldScore);

                    var data = new Dictionary <string, string>
                    {
                        { bonusPoints, (oldBonusPoints + point).ToString() },
                        { score, (oldScore + point).ToString() },
                        { "Email", email }
                    };

                    AddOrUpdateRecipient(data, currentRecipientListId);
                }
            }
            catch (Exception ex)
            {
                LogManager.GetLogger(GetType()).Error(ex.Message, ex.StackTrace);
            }
        }