コード例 #1
0
        public void WhenIRunTheReceiveAddToDatabaseProcess()
        {
            Assert.IsTrue(StaticVariables.StaticEmailHelper.ConnectToEmailServer(), "Could not connect to email server");
            FullEmailListForRetrieveDto emails = StaticVariables.StaticEmailHelper.RetrieveEmailBatch(100).GetAwaiter().GetResult();

            //Any emails to be saved to database
            CRUDEnums.ActionResult actionResult = StaticVariables.StaticEmailAlertDal.Put(emails.Emails.ToList()).GetAwaiter().GetResult();
            Assert.AreEqual(CRUDEnums.ActionResult.Success, actionResult, "Error adding to database");
        }
コード例 #2
0
        protected IEnumerable <FullEmailModel> saveAndValidateExtendedEmails(IEnumerable <FullEmailModel> emails)
        {
            //Any emails to be saved to database

            List <FullEmailModel> validEmails = new List <FullEmailModel>();

            foreach (FullEmailModel email in emails)
            {
                if (email.From.ToLower() != _acceptedEmailAddress)
                {
                    if (!_emailHelper.MoveEmail(email.UniqueIdentifier, CommunicationLocationEnum.InvalidSender))
                    {
                        _logger.Error($"Could not send Email {email.UniqueIdentifier} to Invalid Sender Folder");
                    }
                    continue;
                }

                CRUDEnums.ActionResult actionResult = _emailAlertsDal.Put(email).GetAwaiter().GetResult();

                if (actionResult != CRUDEnums.ActionResult.Success)
                {
                    if (actionResult == CRUDEnums.ActionResult.Duplicate)
                    {
                        _logger.Information($"Full email {email.UniqueIdentifier} did not save due to duplication");
                        if (!_emailHelper.MoveEmail(email.UniqueIdentifier, CommunicationLocationEnum.Duplicate))
                        {
                            _logger.Error($"Could not send Email {email.UniqueIdentifier} to Duplicated Folder");
                        }
                    }
                    else
                    {
                        _logger.Error($"An error occured while saving full email {email.UniqueIdentifier} to the database Error Type {actionResult.ToString()}");
                        if (!_emailHelper.MoveEmail(email.UniqueIdentifier, CommunicationLocationEnum.Unparsed))
                        {
                            _logger.Error($"Could not send Email {email.UniqueIdentifier} to Unparsed Folder");
                        }
                    }


                    continue;
                }
                validEmails.Add(email);
                if (!_emailHelper.DeleteBatch(new string[] { email.UniqueIdentifier }))
                {
                    _logger.Error($"Could not remove emails {email.UniqueIdentifier} from mailbox");
                }
            }
            return(validEmails);
        }
コード例 #3
0
        public void RefreshAssociations()
        {
            _logger.Information("Attempting to link sites and folders");
            SiteDal siteDal = new SiteDal(_configuration, _logger);
            IEnumerable <SiteForExtendedTicketDto> sites = siteDal.GetSiteForExtendedTicket("red alert").GetAwaiter().GetResult();

            _logger.Information($"Retreived {sites.Count()} new link sites");
            Dictionary <string, int> siteAssociation = new AssociationHelper(sites, _logger).SiteAssociation;

            foreach (KeyValuePair <string, int> site in siteAssociation)
            {
                CRUDEnums.ActionResult result = siteDal.Post(site.Value, site.Key).GetAwaiter().GetResult();
                if (result != CRUDEnums.ActionResult.Success)
                {
                    _logger.Error($"Error updating site {site.Value} with external identifier {site.Key} Error {result.ToString()}");
                }
            }
            _logger.Information("Completed link sites and folders");
        }
コード例 #4
0
        public async Task <CRUDEnums.ActionResult> PutOrPost(IEnumerable <SiteModel> siteModels)
        {
            CRUDEnums.ActionResult actionResult = CRUDEnums.ActionResult.UnknownError;
            foreach (SiteModel site in siteModels)
            {
                var tempSite = await Get(site.Id);

                //if (tempSite != null && tempSite.Id == site.Id)
                //{
                //    actionResult = await updateSite(site);
                //}
                //else
                //{
                //    actionResult = await insertSite(site);
                //}
                if (actionResult != CRUDEnums.ActionResult.Success)
                {
                    return(actionResult);
                }
            }

            return(CRUDEnums.ActionResult.Success);
        }