示例#1
0
        public EmailResponseDto <string> DeleteEmailTemplate(string templateID)
        {
            var response = new EmailResponseDto <string>();

            try
            {
                var emailTemplate = _context.EmailTemplates.Where(o => o.ID.ToLower().Equals(templateID.ToLower())).FirstOrDefault();
                if (emailTemplate != null)
                {
                    _context.EmailTemplates.Remove(emailTemplate);
                    if (_context.SaveChanges() == 1)
                    {
                        response.Status  = true;
                        response.Message = $"Deleted Template";
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = $"Failed to delete Template";
                    }
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Found no record";
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#2
0
        public EmailResponseDto <string> CheckIfEmailPoolIDNameValid(string poolID, string poolName)
        {
            var response = new EmailResponseDto <string>();

            try
            {
                var emailPool = _context.EmailPools.Any(sp => sp.ID.ToLower().Equals(poolID.ToLower()) && sp.Name.ToLower().Equals(poolName.ToLower()));
                if (emailPool)
                {
                    response.Status  = true;
                    response.Message = $"Valid Pool ID and Pool Name {poolName}.";
                    response.Result  = "Email Pool Valid.";
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Invalid Pool ID and Pool Name {poolName}";
                    response.Result  = "Email Pool Invalid.";
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public ActionResult UpdateEmailPool(EmailPoolDto poolInput)
        {
            _logger.LogInformation("UpdateEmailPool action method.");
            EmailResponseDto <EmailPoolDto> poolResponse = new EmailResponseDto <EmailPoolDto>();

            try
            {
                if (!string.IsNullOrWhiteSpace(poolInput.Name))
                {
                    poolResponse = _emailManagementInteractor.UpdateEmailPool(poolInput);
                    if (poolResponse.Status)
                    {
                        _logger.LogDebug("Status: " + poolResponse.Status + ", " + poolResponse.Message);
                        return(Ok(poolResponse));
                    }
                    else
                    {
                        _logger.LogError("Status: " + poolResponse.Status + ", " + poolResponse.Message);
                        return(StatusCode((int)HttpStatusCode.PreconditionFailed, poolResponse));
                    }
                }
                else
                {
                    poolResponse.Status  = false;
                    poolResponse.Message = "Pool Name cannot be empty or whitespace.";
                    _logger.LogError("Status: " + poolResponse.Status + ", " + poolResponse.Message);
                    return(StatusCode((int)HttpStatusCode.PreconditionFailed, poolResponse));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError("Internal server error: Error occurred while updating email pool: " + ex.Message);
                return(StatusCode((int)HttpStatusCode.InternalServerError, ex));
            }
        }
示例#4
0
        public EmailResponseDto <EmailPoolTable> GetEmailPoolByName(string poolName)
        {
            var response = new EmailResponseDto <EmailPoolTable>();

            try
            {
                var emailPool = _context.EmailPools.FirstOrDefault(sp => sp.Name.ToLower().Equals(poolName.ToLower()));
                if (emailPool != null)
                {
                    response.Status  = true;
                    response.Message = $"Retrieved Email pool data for {poolName}";
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Email pool data for {poolName} is not available";
                }
                response.Result = emailPool;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public EmailResponseDto <EmailHistoryTable> AddEmailHistory(EmailHistoryTable historyInput)
        {
            var response = new EmailResponseDto <EmailHistoryTable>();

            try
            {
                historyInput.ID = Guid.NewGuid().ToString();
                historyInput    = _context.EmailHistories.Add(historyInput).Entity;
                if (_context.SaveChanges() == 1)
                {
                    response.Status  = true;
                    response.Message = "Added";
                    response.Result  = historyInput;
                }
                else
                {
                    response.Status  = false;
                    response.Message = "Not Added";
                    response.Result  = historyInput;
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public EmailResponseDto <EmailChannelTable> GetEmailChannelByKey(string channelKey)
        {
            var response = new EmailResponseDto <EmailChannelTable>();

            try
            {
                var emailChannel = _context.EmailChannels.FirstOrDefault(sp => sp.Key.ToLower().Equals(channelKey.ToLower()));
                if (emailChannel != null)
                {
                    response.Status  = true;
                    response.Message = $"Retrieved Email channel data for {channelKey}";
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Email Channel Data Unavailable for {channelKey}";
                }
                response.Result = emailChannel;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public EmailResponseDto <EmailProviderSettingsTable> GetEmailProviderByChannelKey(string channelKey)
        {
            _logger.LogInformation("GetEmailProviderByChannelKey");
            var response = new EmailResponseDto <EmailProviderSettingsTable>();

            try
            {
                var emailProvider = (from p in _context.EmailProviders
                                     join c in _context.EmailChannels on new { PoolID = p.EmailPoolID, ProviderID = p.ID } equals new { PoolID = c.EmailPoolID, ProviderID = c.EmailProviderID }
                                     where c.Key.ToLower().Equals(channelKey.ToLower())
                                     select p).FirstOrDefault();
                if (emailProvider != null)
                {
                    response.Status  = true;
                    response.Message = $"Retrieved Email provider data for channel {channelKey}";
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Email provider data for channel {channelKey} is not available.";
                }
                _logger.LogDebug($"Status : {response.Status}");
                _logger.LogDebug($"Message : {response.Message}");

                response.Result = emailProvider;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public EmailResponseDto <string> CheckIfEmailChannelIDKeyValid(string channelID, string channelKey)
        {
            var response = new EmailResponseDto <string>();

            try
            {
                var emailPool = _context.EmailChannels.Any(sp => sp.ID.ToLower().Equals(channelID.ToLower()) && sp.Key.ToLower().Equals(channelKey.ToLower()));
                if (emailPool)
                {
                    response.Status  = true;
                    response.Message = $"Valid Channel ID and Channel Key {channelKey}.";
                    response.Result  = "Email Channel Valid.";
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Invalid Channel ID and Channel Key {channelKey}";
                    response.Result  = "Email Channel Invalid.";
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public EmailResponseDto <string> DeleteEmailChannel(string channelID)
        {
            var response = new EmailResponseDto <string>();

            try
            {
                var emailChannel = _context.EmailChannels.Where(o => o.ID.ToLower().Equals(channelID.ToLower())).FirstOrDefault();
                if (emailChannel != null)
                {
                    _context.EmailChannels.Remove(emailChannel);
                    if (_context.SaveChanges() == 1)
                    {
                        response.Status  = true;
                        response.Message = $"Deleted Successfully";
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = $"Failed to delete";
                    }
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Email Channel Data not found";
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public EmailResponseDto <List <EmailChannelTable> > GetEmailChannels(string poolID)
        {
            var response = new EmailResponseDto <List <EmailChannelTable> >();

            try
            {
                var emailChannels = (from p in _context.EmailPools
                                     join c in _context.EmailChannels on p.ID equals c.EmailPoolID
                                     join pr in _context.EmailProviders on c.EmailProviderID equals pr.ID
                                     where p.ID.ToLower().Equals(poolID.ToLower())
                                     select new EmailChannelTable
                {
                    ID = c.ID,
                    Key = c.Key,
                    EmailPoolID = c.EmailPoolID,
                    EmailPoolName = p.Name,
                    EmailProviderID = c.EmailProviderID,
                    EmailProviderName = pr.Name
                }).ToList();

                response.Status  = true;
                response.Message = $"Retrieved {emailChannels.Count} Email channel data";
                response.Result  = emailChannels;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#11
0
        public EmailResponseDto <string> CheckIfEmailPoolIDIsValid(string poolID)
        {
            var response = new EmailResponseDto <string>();

            try
            {
                var emailPool = _context.EmailPools.Any(sp => sp.ID.ToLower().Equals(poolID.ToLower()));
                if (emailPool)
                {
                    response.Status  = true;
                    response.Message = $"Email Pool ID is valid.";
                    response.Result  = "Valid Email Pool.";
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Email pool data is not available";
                    response.Result  = "Invalid Email Pool.";
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#12
0
        public EmailResponseDto <string> DeleteEmailPool(string poolID)
        {
            var response = new EmailResponseDto <string>();

            try
            {
                var queryResult = _context.EmailPools.Where(sp => sp.ID.ToLower().Equals(poolID.ToLower())).FirstOrDefault();
                if (queryResult != null)
                {
                    _context.Remove(queryResult);
                    if (_context.SaveChanges() == 1)
                    {
                        response.Status  = true;
                        response.Message = "Deleted";
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = "Not Deleted";
                    }
                }
                else
                {
                    response.Status  = false;
                    response.Message = "No Record found.";
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#13
0
        public EmailResponseDto <string> SendMail(EmailDto emailInputs)
        {
            _logger.LogInformation("SendMail interactor method.");
            var response = new EmailResponseDto <string>();

            try
            {
                if (string.IsNullOrEmpty(emailInputs.ChannelKey))
                {
                    _logger.LogError("Channel key cannot be blank.");
                    response.Status  = false;
                    response.Message = "Channel key cannot be blank.";
                    return(response);
                }
                else
                {
                    var channelExist = _emailChannelInteractor.CheckIfChannelExist(emailInputs.ChannelKey).Result;
                    if (!channelExist)
                    {
                        _logger.LogError($"Invalid Channel key {emailInputs.ChannelKey}.");
                        response.Status  = channelExist;
                        response.Message = $"Invalid Channel key {emailInputs.ChannelKey}.";
                        return(response);
                    }
                }
                if (string.IsNullOrEmpty(emailInputs.TemplateName))
                {
                    _logger.LogError($"Template name cannot be blank.");
                    response.Status  = false;
                    response.Message = "Template name cannot be blank.";
                    return(response);
                }
                else
                {
                    var templateExist = _emailTemplateInteractor.CheckIfTemplateExist(emailInputs.ChannelKey, emailInputs.TemplateName).Result;
                    if (!templateExist)
                    {
                        _logger.LogError($"No template found for template name {emailInputs.TemplateName} and channel key {emailInputs.ChannelKey}.");
                        response.Status  = templateExist;
                        response.Message = $"No template found for template name {emailInputs.TemplateName} and channel key {emailInputs.ChannelKey}.";
                        return(response);
                    }
                }
                _logger.LogInformation("Trying to send Email.");
                _emailEventInteractor.SendMail(emailInputs);
                response.Status  = true;
                response.Message = $"Email is sent successfully to {string.Join(",", emailInputs.Recipients)}.";
                _logger.LogDebug("" + response.Message);
                return(response);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while sending email: ", ex.Message);
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#14
0
        public EmailResponseDto <EmailTemplateDto> UpdateEmailTemplate(EmailTemplateDto templateInput)
        {
            var response = new EmailResponseDto <EmailTemplateDto>();

            if (!string.IsNullOrEmpty(templateInput.EmailPoolName))
            {
                if (string.IsNullOrEmpty(templateInput.EmailPoolID))
                {
                    var emailPool = _emailPoolRepository.GetEmailPoolByName(templateInput.EmailPoolName)?.Result;
                    if (emailPool != null)
                    {
                        templateInput.EmailPoolID = emailPool.ID;
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = "Invalid Email pool.";
                        response.Result  = templateInput;
                        return(response);
                    }
                }
                else
                {
                    var emailPool = _emailPoolRepository.CheckIfEmailPoolIDNameValid(templateInput.EmailPoolID, templateInput.EmailPoolName);
                    if (!emailPool.Status)
                    {
                        response.Status  = false;
                        response.Message = "Email Pool ID and Name do not match.";
                        response.Result  = templateInput;
                        return(response);
                    }
                }
            }
            else if (!string.IsNullOrEmpty(templateInput.EmailPoolID))
            {
                var emailPool = _emailPoolRepository.CheckIfEmailPoolIDIsValid(templateInput.EmailPoolID);
                if (!emailPool.Status)
                {
                    response.Status  = false;
                    response.Message = "Invalid Email Pool ID.";
                    response.Result  = templateInput;
                    return(response);
                }
            }
            else
            {
                response.Status  = false;
                response.Message = "Email pool cannot be blank.";
                response.Result  = templateInput;
                return(response);
            }
            var mappedInput    = _mapper.Map <EmailTemplateTable>(templateInput);
            var mappedResponse = _emailTemplateRepository.UpdateEmailTemplate(mappedInput);

            response = _mapper.Map <EmailResponseDto <EmailTemplateDto> >(mappedResponse);
            return(response);
        }
        public EmailResponseDto <EmailProviderSettingsDto> AddEmailProvider(EmailProviderSettingsDto providerInput)
        {
            var response = new EmailResponseDto <EmailProviderSettingsDto>();

            if (!string.IsNullOrEmpty(providerInput.EmailPoolName))
            {
                if (string.IsNullOrEmpty(providerInput.EmailPoolID))
                {
                    var emailPool = _emailPoolRepository.GetEmailPoolByName(providerInput.EmailPoolName)?.Result;
                    if (emailPool != null)
                    {
                        providerInput.EmailPoolID = emailPool.ID;
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = "Invalid Email pool.";
                        response.Result  = providerInput;
                        return(response);
                    }
                }
                else
                {
                    var emailPool = _emailPoolRepository.CheckIfEmailPoolIDNameValid(providerInput.EmailPoolID, providerInput.EmailPoolName);
                    if (!emailPool.Status)
                    {
                        response.Status  = false;
                        response.Message = "Email Pool ID and Name do not match.";
                        response.Result  = providerInput;
                        return(response);
                    }
                }
            }
            else if (!string.IsNullOrEmpty(providerInput.EmailPoolID))
            {
                var emailPool = _emailPoolRepository.CheckIfEmailPoolIDIsValid(providerInput.EmailPoolID);
                if (!emailPool.Status)
                {
                    response.Status  = false;
                    response.Message = "Invalid Email Pool ID.";
                    response.Result  = providerInput;
                    return(response);
                }
            }
            else
            {
                response.Status  = false;
                response.Message = "Email pool cannot be blank.";
                response.Result  = providerInput;
                return(response);
            }
            var mappedEmailInput = _mapper.Map <EmailProviderSettingsTable>(providerInput);
            var mappedResponse   = _emailProviderRepository.AddEmailProvider(mappedEmailInput);

            response = _mapper.Map <EmailResponseDto <EmailProviderSettingsDto> >(mappedResponse);
            return(response);
        }
        public EmailResponseDto <List <EmailHistoryDto> > GetEmailHistoriesByTag(string channelKey, string tag)
        {
            _logger.LogInformation("AddEmailHistory interactor method.");
            EmailResponseDto <List <EmailHistoryDto> > responseDto = new EmailResponseDto <List <EmailHistoryDto> >();

            try
            {
                var histories = _emailHistoryRepository.GetEmailHistoriesByTag(channelKey, tag);
                _logger.LogDebug($"Status: {histories.Status},Message: {histories.Message}");
                return(_mapper.Map <EmailResponseDto <List <EmailHistoryDto> > >(histories));
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred while getting email history by tag:" + ex.Message);
                responseDto.Message = "Failed to get histories by tag: " + ex.Message;
                responseDto.Status  = false;
                return(responseDto);
            }
        }
示例#17
0
        public EmailResponseDto <List <EmailPoolTable> > GetEmailPoolNames()
        {
            var response = new EmailResponseDto <List <EmailPoolTable> >();

            try
            {
                var emailPools = _context.EmailPools.ToList();
                response.Status  = true;
                response.Message = $"Retrieved {emailPools.Count} Email pool data";
                response.Result  = emailPools;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
        public EmailResponseDto <List <EmailHistoryTable> > GetEmailHistoriesByTag(string channelKey, string tag)
        {
            var response = new EmailResponseDto <List <EmailHistoryTable> >();

            try
            {
                var emailHistories = new List <EmailHistoryTable>();

                emailHistories = (from h in _context.EmailHistories
                                  join c in _context.EmailChannels on h.EmailChannelID equals c.ID
                                  join pr in _context.EmailProviders on h.EmailProviderID equals pr.ID
                                  where c.Key.ToLower().Equals(channelKey.ToLower()) && (string.IsNullOrEmpty(tag) || h.Tags.ToLower().Equals(tag.ToLower()))
                                  select new EmailHistoryTable {
                    ID = h.ID,
                    Sender = h.Sender,
                    SentOn = h.SentOn,
                    Recipients = h.Recipients,
                    Attempts = h.Attempts,
                    Tags = h.Tags,
                    Status = h.Status,
                    ChannelKey = c.Key,
                    ProviderName = pr.Name,
                    MessageSent = h.MessageSent,
                    EmailChannelID = h.EmailChannelID,
                    EmailProviderID = h.EmailProviderID,
                    TemplateName = h.TemplateName,
                    TemplateVariant = h.TemplateVariant
                }).ToList();


                response.Status  = true;
                response.Message = $"Retrieved {emailHistories.Count} Email histories data for pool";
                response.Result  = emailHistories;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#19
0
        public EmailResponseDto <EmailTemplateTable> AddEmailTemplate(EmailTemplateTable templateInput)
        {
            var response = new EmailResponseDto <EmailTemplateTable>();

            try
            {
                var template = _context.EmailTemplates.FirstOrDefault(st => st.Name.ToLower().Equals(templateInput.Name.ToLower()) &&
                                                                      st.EmailPoolID.Equals(templateInput.EmailPoolID) && (string.IsNullOrEmpty(templateInput.Variant) ||
                                                                                                                           st.Variant.ToLower().Equals(templateInput.Variant.ToLower())));
                if (template != null)
                {
                    response.Status  = false;
                    response.Message = $"This template is already used.";
                    response.Result  = templateInput;
                }
                else
                {
                    templateInput.ID = Guid.NewGuid().ToString();
                    _context.EmailTemplates.Add(templateInput);
                    if (_context.SaveChanges() == 1)
                    {
                        response.Status  = true;
                        response.Message = "Added";
                        response.Result  = templateInput;
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = "Not Added";
                        response.Result  = templateInput;
                    }
                }

                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#20
0
        public EmailResponseDto <EmailTemplateTable> UpdateEmailTemplate(EmailTemplateTable templateInput)
        {
            var response = new EmailResponseDto <EmailTemplateTable>();

            try
            {
                var template = _context.EmailTemplates.FirstOrDefault(st => st.Name.ToLower().Equals(templateInput.Name.ToLower()) &&
                                                                      st.EmailPoolID.Equals(templateInput.EmailPoolID) && (string.IsNullOrEmpty(templateInput.Variant) ||
                                                                                                                           st.Variant.ToLower().Equals(templateInput.Variant.ToLower())));
                if (template != null)
                {
                    template.MessageTemplate = templateInput.MessageTemplate;
                    template.Sender          = templateInput.Sender;
                    if (_context.SaveChanges() == 1)
                    {
                        response.Status  = true;
                        response.Message = "Updated";
                        response.Result  = templateInput;
                    }
                    else
                    {
                        response.Status  = false;
                        response.Message = "Failed To Update";
                        response.Result  = templateInput;
                    }
                }
                else
                {
                    response.Status  = false;
                    response.Message = $"Unable to find template with name {templateInput.Name} and variant {templateInput.Variant}";
                    response.Result  = templateInput;
                }

                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#21
0
        public EmailResponseDto <EmailChannelDto> AddEmailChannel(EmailChannelDto channelInput)
        {
            _logger.LogInformation("AddEmailChannel interactor method.");
            EmailResponseDto <EmailChannelDto> channelResponse = new EmailResponseDto <EmailChannelDto>();

            try
            {
                _logger.LogInformation("Trying to add EmailChannel.");
                channelResponse = _emailChannelInteractor.AddEmailChannel(channelInput);
                _logger.LogDebug("" + channelResponse.Message);
                return(channelResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while adding email channel: ", ex.Message);
                channelResponse.Message = "Error occurred while adding email channel: " + ex.Message;
                channelResponse.Status  = false;
                return(channelResponse);
            }
        }
示例#22
0
        public EmailResponseDto <EmailProviderSettingsDto> UpdateEmailProvider(EmailProviderSettingsDto providerInput)
        {
            _logger.LogInformation("UpdateEmailProvider interactor method.");
            EmailResponseDto <EmailProviderSettingsDto> providerResponse = new EmailResponseDto <EmailProviderSettingsDto>();

            try
            {
                _logger.LogInformation("Trying to update EmailProvider.");
                providerResponse = _emailProviderInteractor.UpdateEmailProvider(providerInput);
                _logger.LogDebug("Status: " + providerResponse.Status + ", " + providerResponse.Message);
                return(providerResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while updating email provider: ", ex.Message);
                providerResponse.Message = "Error occurred while updating email provider: " + ex.Message;
                providerResponse.Status  = false;
                return(providerResponse);
            }
        }
示例#23
0
        public EmailResponseDto <EmailPoolDto> AddEmailPool(EmailPoolDto poolInput)
        {
            _logger.LogInformation("AddEmailPool interactor method.");
            EmailResponseDto <EmailPoolDto> poolResponse = new EmailResponseDto <EmailPoolDto>();

            try
            {
                _logger.LogInformation("Trying to add EmailPool.");
                poolResponse = _emailPoolInteractor.AddEmailPool(poolInput);
                _logger.LogDebug("Status: " + poolResponse.Status + ", " + poolResponse.Message);
                return(poolResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while adding email pool: ", ex.Message);
                poolResponse.Message = "Error occurred while adding email pool: " + ex.Message;
                poolResponse.Status  = false;
                return(poolResponse);
            }
        }
        public EmailResponseDto <EmailQuotaDto> GetEmailQuota(string channelKey)
        {
            _logger.LogInformation("GetEmailQuota interactor method.");
            var response = new EmailResponseDto <EmailQuotaDto>();

            try
            {
                var emailQuotaResponse = _emailQuotaRepository.GetEmailQuota(channelKey);
                _logger.LogDebug("Status: " + emailQuotaResponse.Status + ", Message: " + emailQuotaResponse.Message);
                var mappedResponse = _mapper.Map <EmailResponseDto <EmailQuotaDto> >(emailQuotaResponse);
                return(mappedResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Failed to get Email Quota" + ex.Message);
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }
示例#25
0
        public EmailResponseDto <List <EmailHistoryDto> > GetEmailHistoriesByTag(string channelKey, string tag)
        {
            _logger.LogInformation("GetEmailHistoriesByTag interactor method.");
            EmailResponseDto <List <EmailHistoryDto> > poolResponse = new EmailResponseDto <List <EmailHistoryDto> >();

            try
            {
                _logger.LogInformation($"Trying to get Email histories by tag for ChannelKey: {channelKey} and Tag: {tag}.");
                poolResponse = _emailHistoryInteractor.GetEmailHistoriesByTag(channelKey, tag);
                _logger.LogDebug("" + poolResponse.Message);
                return(poolResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while getting email histories: ", ex.Message);
                poolResponse.Message = "Error occurred while getting email histories: " + ex.Message;
                poolResponse.Status  = false;
                return(poolResponse);
            }
        }
示例#26
0
        public EmailResponseDto <List <EmailProviderSettingsDto> > GetEmailProvidersByPool(string poolName, string providerName)
        {
            _logger.LogInformation("GetEmailProvidersByPool interactor method.");
            EmailResponseDto <List <EmailProviderSettingsDto> > providerResponse = new EmailResponseDto <List <EmailProviderSettingsDto> >();

            try
            {
                _logger.LogInformation($"Trying to get Email Provider By poolname for Pool: {poolName} and Provider: {providerName}.");
                providerResponse = _emailProviderInteractor.GetEmailProvidersByPool(poolName, providerName);
                _logger.LogDebug("" + providerResponse.Message);
                return(providerResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while getting email provider by pool: ", ex.Message);
                providerResponse.Message = "Error occurred while getting email provider by pool: " + ex.Message;
                providerResponse.Status  = false;
                return(providerResponse);
            }
        }
示例#27
0
        public EmailResponseDto <EmailChannelDto> GetEmailChannelByKey(string channelKey)
        {
            _logger.LogInformation("GetEmailChannelByKey interactor method.");
            EmailResponseDto <EmailChannelDto> channelResponse = new EmailResponseDto <EmailChannelDto>();

            try
            {
                _logger.LogInformation($"Trying to get Email Channel By Key for Channel Key {channelKey}.");
                channelResponse = _emailChannelInteractor.GetEmailChannelByKey(channelKey);
                _logger.LogDebug("" + channelResponse.Message);
                return(channelResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while getting email channel by key: ", ex.Message);
                channelResponse.Message = "Error occurred while getting email channel by key: " + ex.Message;
                channelResponse.Status  = false;
                return(channelResponse);
            }
        }
示例#28
0
        public EmailResponseDto <EmailTemplateDto> UpdateEmailTemplate(EmailTemplateDto templateInput)
        {
            _logger.LogInformation("UpdateEmailTemplate interactor method.");
            EmailResponseDto <EmailTemplateDto> templateResponse = new EmailResponseDto <EmailTemplateDto>();

            try
            {
                _logger.LogInformation("Trying to update EmailTemplate.");
                templateResponse = _emailTemplateInteractor.UpdateEmailTemplate(templateInput);
                _logger.LogDebug("" + templateResponse.Message);
                return(templateResponse);
            }
            catch (Exception ex)
            {
                _logger.LogError("Error occurred in Email Interactor while updating email template: ", ex.Message);
                templateResponse.Message = "Error occurred while updating email template: " + ex.Message;
                templateResponse.Status  = false;
                return(templateResponse);
            }
        }
        public EmailResponseDto <bool> CheckIfChannelExist(string channelKey)
        {
            var response = new EmailResponseDto <bool>();

            try
            {
                var channelExist = _context.EmailChannels.Any(sp => sp.Key.ToLower().Equals(channelKey.ToLower()));
                response.Status  = channelExist;
                response.Message = $"Is channel existing : {channelExist}";
                response.Result  = channelExist;
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                response.Result  = false;
                return(response);
            }
        }
        public EmailResponseDto <EmailQuotaTable> UpdateEmailQuota(string channelID)
        {
            var response = new EmailResponseDto <EmailQuotaTable>();

            try
            {
                var emailQuota = _context.EmailQuotas.FirstOrDefault(q => q.EmailChannelID == channelID);
                if (emailQuota != null)
                {
                    var countInt = Convert.ToInt32(emailQuota.TotalConsumption); // TODO Implement encryption
                    countInt += 1;
                    emailQuota.TotalConsumption = countInt;
                    _context.EmailQuotas.Update(emailQuota);
                }
                else
                {
                    emailQuota = new EmailQuotaTable()
                    {
                        EmailChannelID     = channelID,
                        MonthlyQuota       = 100,
                        MonthlyConsumption = 1,
                        TotalConsumption   = 1
                    };
                    _context.EmailQuotas.Add(emailQuota);
                }
                if (_context.SaveChanges() == 1)
                {
                    response.Status  = true;
                    response.Message = "Email Quota is updated";
                    response.Result  = emailQuota;
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Status  = false;
                response.Message = ex.Message;
                return(response);
            }
        }