Example #1
0
        public async Task <TenantDto> GetTenant(EntityDto <long> input)
        {
            var tenant = await _tenantManager.Tenants
                         //.Where(x => (!input.Keyword.IsNullOrWhiteSpace()) ? x.TenancyName.Contains(input.Keyword) : true)
                         .Where(x => x.Id == input.Id)
                         .Include(x => x.Category)
                         .Include(x => x.SubCategories)
                         //.Include(x => x.SubCategories)
                         .OrderBy(x => x.TenancyName)
                         .ToListAsync();

            var items = tenant
                        .Select(x =>
            {
                var categoryDto      = new TenantCategoryDto();
                var subCategoriesDto = new List <TenantSubCategoryDto>();
                if (x.Category != null)
                {
                    categoryDto.Title = x.Category.Title;
                    var subCategories = _tenantCategoryManager.TenantCategories
                                        .Where(y => y.Id == x.Category.Id).Include(y => y.SubCategories)
                                        .Select(y => new {
                        subCategories = y.SubCategories.ToDictionary(z => z.Id, z => z.Title)
                    }).FirstOrDefault().subCategories;

                    foreach (var subCategory in x.SubCategories)
                    {
                        var s   = new TenantSubCategoryDto();
                        s.Title = subCategories.GetOrDefault(subCategory.SubCategory.Id);
                        subCategoriesDto.Add(s);
                    }
                }

                return(new TenantDto
                {
                    Id = x.Id,
                    TenancyName = x.TenancyName,
                    Name = x.Name,
                    IsActive = x.IsActive,
                    Category = categoryDto,
                    ProfilePictureId = x.ProfilePictureId,
                    //new TenantCategory.Dto.TenantCategoryDto
                    //{
                    //    Title = x.Category.Title
                    //},
                    //x.SubCategories.FToList()
                    SubCategories = subCategoriesDto
                                    //x.SubCategories.Select(y => new TenantCategory.Dto.TenantSubCategoryDto
                                    //{
                                    //    Title = y.Title
                                    //}).ToList()
                });
            })
                        .ToList();


            return(items.FirstOrDefault());
        }
Example #2
0
        public async Task <TenantBranchesListDto> GetLocations(EntityDto input)
        {
            var items = await _locationManager.Locations
                        .Where(x => x.TenantId == input.Id)
                        //.Where(x => (!input.Keyword.IsNullOrWhiteSpace()) ? x.Name.Contains(input.Keyword) : true)
                        .Select(x => new LocationListDto
            {
                Id       = x.Id,
                Name     = x.Name,
                Address  = x.Address,
                Postcode = x.Postcode,
                State    = new StateDto
                {
                    Id        = x.State.Id,
                    StateName = x.State.StateName
                },
                City = new CityDto
                {
                    CityName = x.City.CityName
                },
                CoverPictureId = x.CoverPictureId ?? 0,
                Remarks        = x.Remarks
            })
                        .OrderBy(x => x.Name)
                        .ToListAsync();

            var tenant = await _tenantManager.Tenants
                         //.Where(x => (!input.Keyword.IsNullOrWhiteSpace()) ? x.TenancyName.Contains(input.Keyword) : true)
                         .Where(x => x.Id == input.Id)
                         .Include(x => x.Category)
                         .Include(x => x.SubCategories)
                         //.Include(x => x.SubCategories)
                         .OrderBy(x => x.TenancyName)
                         .ToListAsync();

            var output = tenant
                         .Select(x =>
            {
                var categoryDto      = new TenantCategoryDto();
                var subCategoriesDto = new List <TenantSubCategoryDto>();
                if (x.Category != null)
                {
                    categoryDto.Title = x.Category.Title;
                    var subCategories = _tenantCategoryManager.TenantCategories
                                        .Where(y => y.Id == x.Category.Id).Include(y => y.SubCategories)
                                        .Select(y => new {
                        subCategories = y.SubCategories.ToDictionary(z => z.Id, z => z.Title)
                    }).FirstOrDefault().subCategories;

                    foreach (var subCategory in x.SubCategories)
                    {
                        var s   = new TenantSubCategoryDto();
                        s.Title = subCategories.GetOrDefault(subCategory.SubCategory.Id);
                        subCategoriesDto.Add(s);
                    }
                }

                return(new TenantBranchesListDto
                {
                    Id = x.Id,
                    TenancyName = x.TenancyName,
                    Name = x.Name,
                    IsActive = x.IsActive,
                    Category = categoryDto,
                    SubCategories = subCategoriesDto,
                    Locations = items
                });
            })
                         .ToList().FirstOrDefault();

            return(output);
        }