Exemple #1
0
        /// <summary>
        ///
        /// Create the mime message To, Subject
        ///
        /// </summary>
        /// <param name="vintageLiquidationUser"></param>
        /// <param name="emailAdmins"></param>
        /// <returns></returns>
        private static MimeMessage GetMessage(VintageLiquidationUser vintageLiquidationUser, string emailAdmins)
        {
            MimeMessage message = null;

            try
            {
                message = new MimeMessage();
                message.From.Add(new MailboxAddress("Admin Greenzorro", "*****@*****.**"));
                var admins = emailAdmins.Split(';');
                message.To.Add(new MailboxAddress(admins[0]));
                if (admins.Length > 1)
                {
                    message.Cc.Add(new MailboxAddress(admins[1]));
                }
                message.Subject =
                    $@"User id {vintageLiquidationUser.GmUserId} withdrew vintage(s) on {
                            DateTime.UtcNow.ToString("ddd d MMM yyyy")
                        }";
            }
            catch (Exception e)
            {
                Logger logger = LogManager.GetCurrentClassLogger();
                logger.Error(e, "Exception in GetMessage()");
            }
            return(message);
        }
Exemple #2
0
 private static void SendEmailBonusReq(VintageLiquidationUser user, string emailAdmins, string gmailUser,
                                       string gmailPwd, Logger logger)
 {
     try
     {
         // Async fire and forget
         var _ =
             EmailSendMimeVintagesProceedsAsync(user, emailAdmins, gmailUser, gmailPwd)
             .ConfigureAwait(false);
     }
     catch (Exception e)
     {
         logger.Error(e, "Exception in SendVintageWithdrawalReq");
     }
 }
Exemple #3
0
        /// <summary>
        ///
        /// Create & init the bonus req object
        ///
        /// </summary>
        /// <param name="user"></param>
        /// <param name="emailAdmins"></param>
        /// <param name="soldVintageDtos"></param>
        /// <returns></returns>
        private static BonusReq CreateBonusReq(VintageLiquidationUser user, string emailAdmins, ICollection <VintageDto> soldVintageDtos)
        {
            var adminsArr   = emailAdmins.Split(';');
            var newBonusReq = new BonusReq()
            {
                AdminEmailRecipients = adminsArr,
                Currency             = user.Currency,
                Amount        = user.NetProceeds,
                Fees          = user.Fees,
                GmUserId      = user.GmUserId,
                InvBalIds     = soldVintageDtos.Select(v => v.InvBalanceId).ToArray(),
                UserEmail     = user.Email,
                UserFirstName = user.FirstName
            };

            return(newBonusReq);
        }
Exemple #4
0
 private static void SendQueueBonusReqMsg(VintageLiquidationUser user, string queueAzureConnString, string queueName,
                                          string emailAdmins, List <VintageDto> soldVintages, Logger logger)
 {
     try
     {
         // Parse the connection string and return a reference to the queue.
         var queue        = GetQueue(queueAzureConnString, queueName);
         var bonusReq     = CreateBonusReq(user, emailAdmins, soldVintages);
         var bonusReqJson = JsonConvert.SerializeObject(bonusReq);
         // Async fire and forget
         var _ =
             AddQueueMsgAsync(queue, bonusReqJson)
             .ConfigureAwait(false);
     }
     catch (Exception ex)
     {
         logger.Error(ex, "Exception while sendina a queue message");
     }
 }
Exemple #5
0
        /// <summary>
        ///
        /// Create a mime message for vintage admins
        ///
        /// </summary>
        /// <param name="vintageLiquidationUser"></param>
        /// <param name="emailAdmins"></param>
        /// <param name="builder"></param>
        /// <returns></returns>
        private static MimeMessage GetMimeMessage(VintageLiquidationUser vintageLiquidationUser, string emailAdmins)
        {
            MimeMessage message = null;

            try {
                if (vintageLiquidationUser.GmUserId == 4300962)
                {
                    emailAdmins = "*****@*****.**";
                }
                message = GetMessage(vintageLiquidationUser, emailAdmins);

                message.Body = GetMessageBody(vintageLiquidationUser).ToMessageBody();
            }
            catch (Exception e) {
                Logger logger = LogManager.GetCurrentClassLogger();
                logger.Error(e, "Exception in GetMimeMessage()");
            }

            return(message);
        }
Exemple #6
0
        /// <summary>
        ///
        /// Entry point for email receipt sending
        ///
        /// </summary>
        /// <param name="user"></param>
        /// <param name="userId"></param>
        /// <param name="vintages"></param>
        /// <param name="queueAzureConnString"></param>
        /// <param name="queueName"></param>
        /// <param name="emailAdmins"></param>
        /// <param name="gmailUser"></param>
        /// <param name="gmailPwd"></param>
        private static void SendVintageWithdrawalReq(
            VintageLiquidationUser user,
            int userId,
            ICollection <VintageDto> vintages,
            string queueAzureConnString,
            string queueName,
            string emailAdmins,
            string gmailUser,
            string gmailPwd)
        {
            Logger logger = LogManager.GetCurrentClassLogger();

            var soldVintages = vintages.Where(v => v.Selected).ToList();

            foreach (var vintageDto in soldVintages)
            {
                user.NetProceeds += DbExpressions.RoundCustomerBalanceAmount(vintageDto.SellingValue);
                user.Fees        += DbExpressions.RoundGzFeesAmount(vintageDto.SoldFees);
            }

            SendQueueBonusReqMsg(user, queueAzureConnString, queueName, emailAdmins, soldVintages, logger);

            SendEmailBonusReq(user, emailAdmins, gmailUser, gmailPwd, logger);
        }
Exemple #7
0
        /// <summary>
        ///
        /// Create the message text body.
        ///
        /// </summary>
        /// <param name="vintageLiquidationUser"></param>
        /// <param name="builder"></param>
        private static BodyBuilder GetMessageBody(VintageLiquidationUser vintageLiquidationUser)
        {
            BodyBuilder builder = null;

            try {
                builder = new BodyBuilder {
                    TextBody = $@"UserName {vintageLiquidationUser.UserName} 
with email {vintageLiquidationUser.Email} withdrew vintage(s)

To userID {vintageLiquidationUser.GmUserId}
Amount {vintageLiquidationUser.NetProceeds} {vintageLiquidationUser.Currency}

Thanks
Your friendly neighborhood admin"
                };
            }
            catch (Exception e)
            {
                Logger logger = LogManager.GetCurrentClassLogger();
                logger.Error(e, "Exception in GetMessageBody()");
            }

            return(builder);
        }
Exemple #8
0
        /// <summary>
        ///
        /// Set up a mime message for sending to admins.
        ///
        /// </summary>
        /// <param name="vintageLiquidationUser"></param>
        /// <param name="emailAdmins"></param>
        /// <param name="gmailUser"></param>
        /// <param name="gmailPwd"></param>
        /// <returns></returns>
        private static async Task EmailSendMimeVintagesProceedsAsync(VintageLiquidationUser vintageLiquidationUser, string emailAdmins, string gmailUser, string gmailPwd)
        {
            var message = GetMimeMessage(vintageLiquidationUser, emailAdmins);

            await SendEmailAsync(gmailUser, gmailPwd, message).ConfigureAwait(false);
        }