Esempio n. 1
0
        public async Task <OperationDataResult <Paged <EmailRecipientModel> > > GetEmailRecipients(
            EmailRecipientsRequestModel requestModel)
        {
            try
            {
                var emailRecipientsModel = new Paged <EmailRecipientModel>();
                var emailRecipientsQuery = _dbContext.EmailRecipients
                                           .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
                                           .AsQueryable();
                if (!string.IsNullOrEmpty(requestModel.Sort))
                {
                    if (requestModel.IsSortDsc)
                    {
                        emailRecipientsQuery = emailRecipientsQuery
                                               .CustomOrderByDescending(requestModel.Sort);
                    }
                    else
                    {
                        emailRecipientsQuery = emailRecipientsQuery
                                               .CustomOrderBy(requestModel.Sort);
                    }
                }
                else
                {
                    emailRecipientsQuery = emailRecipientsQuery
                                           .OrderBy(x => x.Id);
                }

                // Tag ids
                if (requestModel.TagIds.Any())
                {
                    emailRecipientsQuery = emailRecipientsQuery
                                           .Where(x => x.TagRecipients
                                                  .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
                                                  .Any(y => requestModel.TagIds.Contains(y.EmailTagId)));
                }

                emailRecipientsModel.Total = await emailRecipientsQuery.Select(x => x.Id).CountAsync();

                emailRecipientsQuery = emailRecipientsQuery
                                       .Skip(requestModel.Offset)
                                       .Take(requestModel.PageSize);

                var emailRecipientList = await AddSelectToEmailRecipientsQuery(emailRecipientsQuery)
                                         .ToListAsync();

                emailRecipientsModel.Entities = emailRecipientList;

                return(new OperationDataResult <Paged <EmailRecipientModel> >(
                           true,
                           emailRecipientsModel));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                _logger.LogError(e.Message);
                return(new OperationDataResult <Paged <EmailRecipientModel> >(false,
                                                                              _localizationService.GetString("ErrorWhileObtainingEmailRecipients")));
            }
        }
Esempio n. 2
0
 public async Task <OperationDataResult <Paged <EmailRecipientModel> > > GetEmailRecipients([FromBody] EmailRecipientsRequestModel requestModel)
 {
     return(await _emailRecipientsService.GetEmailRecipients(requestModel));
 }