示例#1
0
        public async Task <object> MailboxTest([FromBody] MailboxRequest request)
        {
            var result = await _communityService.MailboxTestAsync(request);

            //var result = await _communityService.ModifyUserEmailAsync(Guid.Empty, DateTime.Now.ToString(CultureInfo.InvariantCulture));
            ThreadPool.GetAvailableThreads(out var workerThreads, out var completionPortThreads);
            return(new { result, workerThreads, completionPortThreads });
        }
示例#2
0
        public void Delete(MailboxRequest request)
        {
            var mailboxPath = new DirectoryInfo(this.Config.MailFolder);

            foreach (var file in mailboxPath.GetFiles("*.eml"))
            {
                file.Delete();
            }
        }
示例#3
0
        public MailboxResponse Get(MailboxRequest request)
        {
            var mailboxPath = new DirectoryInfo(this.Config.MailFolder);

            request.Page = request.Page == 0 ? 1 : request.Page;

            var emails   = mailboxPath.GetFiles("*.eml");
            var numPages = (int)Math.Ceiling(emails.Count() / ((double)Config.EmailsPerPage));

            var emailsToRead = emails
                               .OrderByDescending(x => x.LastWriteTimeUtc)
                               .Skip(Config.EmailsPerPage * (request.Page - 1))
                               .Take(Config.EmailsPerPage)
                               .Select(x => x.FullName);

            var response = new MailboxResponse()
            {
                Links = new List <Link>(new[]
                {
                    this.GetNextPageLink(request.Page, numPages),
                    this.GetPreviousPageLink(request.Page)
                }),
                Page  = request.Page,
                Pages = numPages
            };

            foreach (var entry in emailsToRead)
            {
                try {
                    var mailMessage = GetMailMessage(entry);

                    response.Emails.Add(new EmailResponse()
                    {
                        Id      = Path.GetFileNameWithoutExtension(entry),
                        Body    = mailMessage.Body,
                        Subject = mailMessage.Subject,
                        To      = mailMessage.To.Select(m => m.Address).ToList(),
                        From    = mailMessage.From.Address,
                        Date    = mailMessage.DeliveryDate,
                        Links   = new List <Link>(new[] { this.GetEmailLink(entry) })
                    });
                } catch (Exception e) {
                    response.Emails.Add(new EmailResponse()
                    {
                        Id      = Path.GetFileNameWithoutExtension(entry),
                        Body    = e.Message,
                        Subject = "[Error reading email]",
                        From    = "-",
                        To      = new List <string>()
                    });
                }
            }

            return(response);
        }
示例#4
0
        public IActionResult LoadData2(string userName = "******", A4APartyType partyType = A4APartyType.User, A4AMailboxType mbType = A4AMailboxType.Inbox)
        {
            //var userName = HttpContext.Session.GetString(ModelNames.SessionStrings.UserName.ToString());
            var mb = new MailboxRequest
            {
                Owner       = userName,
                MailboxType = mbType,
                PageSize    = 20,
                Start       = 0,
                UserType    = partyType // HttpContext.Session.GetString(ModelNames.SessionStrings.UserType.ToString()).ToEnum<A4APartyType>()
            };

            return(new ObjectResult(rep.GetMailbox(mb)));
        }
示例#5
0
        public async Task <bool> GetMailboxList(MailboxRequest Request, int UserID, int ProductID)
        {
            bool result = false;

            try
            {
                var config = new MapperConfiguration(
                    cfg =>
                {
                    cfg.CreateMap <MailboxRequest, MailboxList>();
                }
                    );

                var mapper   = config.CreateMapper();
                var mailbox  = mapper.Map <MailboxList>(Request);
                var response = await client.MailboxListAsync(mailbox);

                result = response.ErrorCode.Trim() != string.Empty ? true : false;

                if (!result)
                {
                    log.LogError(UserID.ToString(), "DataSolution.Services", "GetMailboxList", response.ErrorCode + ":" + response.ErrorMessage);
                }


                //log transaction
                endDate   = DateTime.Now;
                transData = new TransactionModel.TransactionData
                {
                    EndDate      = endDate,
                    IsSuccessful = result,
                    Message      = response.ErrorMessage,
                    ProductID    = ProductID,
                    StartDate    = startDate,
                    UserID       = Convert.ToInt32(UserID)
                };

                SaveTransaction(transData);
            }
            catch (Exception ex)
            {
                log.LogError(UserID.ToString(), "DataSolutions.Web", "TransUnionCommercialService.GetMailboxList", ex.Message);
            }

            return(result);
        }
示例#6
0
        public async Task <bool> MailboxRetrieve(MailboxRequest Request, int UserID, int ProductID)
        {
            bool result = false;

            try
            {
                var config = new MapperConfiguration(
                    cfg =>
                {
                    cfg.CreateMap <MailboxRequest, MailboxRetrieve>();
                }
                    );

                var request = config.CreateMapper().Map <MailboxRetrieve>(Request);
                request.SubscriberCode = subNo;
                request.SecurityCode   = securityCode;
                var response = await client.MailboxRetrieveAsync(request);

                if (!result)
                {
                    log.LogError(UserID.ToString(), "DataSolution.Services", "MailboxRetrieve", response.ErrorCode + ":" + response.ErrorMessage);
                }


                //log transaction
                endDate   = DateTime.Now;
                transData = new TransactionModel.TransactionData
                {
                    EndDate      = endDate,
                    IsSuccessful = result,
                    Message      = response.ErrorMessage,
                    ProductID    = ProductID,
                    StartDate    = startDate,
                    UserID       = Convert.ToInt32(UserID)
                };

                SaveTransaction(transData);
            }
            catch (Exception ex)
            {
                log.LogError(UserID.ToString(), "DataSolutions.Web", "TransUnionCommercialService.MailboxRetrieve", ex.Message);
            }

            return(result);
        }
示例#7
0
        public async Task <(string, int, int, int)> MailboxTest([FromBody] MailboxRequest request)
        {
            await Task.Delay(20);

            if (MailboxValues.TryGetValue(request.Id, out var value))
            {
                value = value + request.Number;
                MailboxValues[request.Id] = value;
            }
            else
            {
                value = request.Number;
                MailboxValues.TryAdd(request.Id, value);
            }
            //throw new Exception("Test Exception");
            ThreadPool.GetAvailableThreads(out var workerThreads, out var completionPortThreads);
            return(request.Id, value, workerThreads, completionPortThreads);
        }
        public async Task <(string, int)> MailboxTestAsync(MailboxRequest request)
        {
            await Task.Delay(10).ConfigureAwait(false);

            if (MailboxValues.TryGetValue(request.Id, out var value))
            {
                value = value + request.Number;
                MailboxValues[request.Id] = value;
            }
            else
            {
                value = request.Number;
                MailboxValues.TryAdd(request.Id, value);
            }

            //throw new Exception("Test Exception");
            var result = (request.Id, value);

            return(result);
        }