public async Task <List <OrganisationUserData> > HandleAsync(GetUserOrganisationsByStatus query)
        {
            var    organisationUsers = new List <OrganisationUser>();
            string userId            = userContext.UserId.ToString();

            if (query.OrganisationUserStatus.Length > 0)
            {
                organisationUsers =
                    await
                    context.OrganisationUsers.Where(
                        ou =>
                        query.OrganisationUserStatus.Contains(ou.UserStatus.Value) && ou.UserId == userId)
                    .ToListAsync();
            }
            else
            {
                organisationUsers =
                    await
                    context.OrganisationUsers.Where(
                        ou => ou.UserId == userId)
                    .ToListAsync();
            }

            if (query.OrganisationStatus != null &&
                query.OrganisationStatus.Length > 0)
            {
                organisationUsers = organisationUsers.Where(ou => query.OrganisationStatus.Contains(ou.Organisation.OrganisationStatus.Value)).ToList();
            }

            var organisationUserData = organisationUsers.Select(item => organisationUserMap.Map(item)).ToList();

            return(organisationUserData);
        }
示例#2
0
        private async Task <int> FetchUserActiveCompleteOrganisationCountFromApi()
        {
            using (var client = apiClient())
            {
                var request = new GetUserOrganisationsByStatus(new int[0]);
                var result  = await client.SendAsync(accessToken, request);

                return(result
                       .Where(o => o.UserStatus == UserStatus.Active)
                       .Count(o => o.Organisation.OrganisationStatus == OrganisationStatus.Complete));
            }
        }