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"))); } }
public async Task <OperationDataResult <Paged <EmailRecipientModel> > > GetEmailRecipients([FromBody] EmailRecipientsRequestModel requestModel) { return(await _emailRecipientsService.GetEmailRecipients(requestModel)); }