/// <summary> /// /// </summary> /// <param name="pageDetails"></param> /// <param name="subscriptionId"></param> /// <returns></returns> public async Task <PagedResultSet <DomainModel.Contact> > MyContacts(Models.Common.PageDetails pageDetails, Guid?subscriptionId) { Expression <Func <DomainModel.Contact, bool> > expression = contact => true; if (subscriptionId != null && subscriptionId != Guid.Empty) { expression = contact => contact.SubscriptionId == subscriptionId; } if (!string.IsNullOrWhiteSpace(pageDetails?.SearchText)) { expression = expression.And(contact => (contact.FirstName.Contains(pageDetails.SearchText) || contact.LastName.Contains(pageDetails.SearchText) || contact.Email.Contains(pageDetails.SearchText) || contact.PhoneNumber.Contains(pageDetails.SearchText) || contact.GroupContactAssociations.Any(asso => asso.Group.Name.Contains(pageDetails.SearchText)))); } var contacts = await Repository.GetAsync(expression); var skip = pageDetails?.PageSize != null && pageDetails?.PageNo != null ? pageDetails.PageSize.Value * (pageDetails.PageNo.Value - 1) : pageDetails?.PageSize; return(PagedResultSet <DomainModel.Contact> .Construct(contacts, skip, pageDetails?.PageSize)); }
/// <summary> /// /// </summary> /// <param name="pageDetails"></param> /// <param name="subscriptionId"></param> /// <returns></returns> public async Task <PagedResultSet <DomainModel.Group> > MyGroups(Models.Common.PageDetails pageDetails, Guid?subscriptionId) { Expression <Func <DomainModel.Group, bool> > expression = group => true; if (subscriptionId != null && subscriptionId != Guid.Empty) { expression = group => group.SubscriptionId == subscriptionId; } if (!string.IsNullOrWhiteSpace(pageDetails?.SearchText)) { expression = expression.And(group => group.Name.Contains(pageDetails.SearchText)); } var groups = await Repository.GetAsync(expression); var skip = pageDetails?.PageSize != null && pageDetails?.PageNo != null ? pageDetails.PageSize.Value * (pageDetails.PageNo.Value - 1) : pageDetails?.PageSize; return(PagedResultSet <DomainModel.Group> .Construct(groups, skip, pageDetails?.PageSize)); }
/// <summary> /// /// </summary> /// <returns></returns> public async Task <PagedResultSet <DomainModel.Subscription> > MySubscriptions(Models.Common.PageDetails pageDetails) { Expression <Func <DomainModel.Subscription, bool> > expression = subscription => true; if (!string.IsNullOrWhiteSpace(pageDetails?.SearchText)) { expression = expression.And(subscription => subscription.Name.Contains(pageDetails.SearchText)); } var subscriptions = await Repository.GetAsync(expression); var skip = pageDetails?.PageSize != null && pageDetails?.PageNo != null ? pageDetails.PageSize.Value * (pageDetails.PageNo.Value - 1) : pageDetails?.PageSize; return(PagedResultSet <DomainModel.Subscription> .Construct(subscriptions, skip, pageDetails?.PageSize)); }