Exemplo n.º 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());
        }
Exemplo n.º 2
0
        public async Task <ListResultDto <TenantWithCategoryListDto> > GetTenants()
        {
            var tenantCategories = await _tenantCategoryManager.TenantCategories.Include(x => x.SubCategories).ToListAsync();

            var tenants = await _tenantManager.Tenants
                          //.Where(x => (!input.Keyword.IsNullOrWhiteSpace()) ? x.TenancyName.Contains(input.Keyword) : true)
                          //.Where(x => (input.IsActive.HasValue) ? x.IsActive == input.IsActive : true)
                          .Where(x => x.Category != null)
                          .Include(x => x.Category)
                          //.Include(x => x.SubCategories)
                          .Include(x => x.SubCategories)

                          /*
                           * .Select(x => new
                           * {
                           *  x.Id,
                           *  CategoryId = x.Category.Id,
                           *  CategoryTitle = x.Category.Title,
                           *  x.SubCategories,
                           *  x.TenancyName,
                           *  x.IsActive,
                           * })
                           */

                          //.OrderBy(x => x.Key)
                          .ToListAsync();

            var items = tenants.GroupBy(x => x.Category.Title)
                        .Select(x =>
            {
                var t = x.Select(y => {
                    //var categoryDto = new TenantCategoryDto();
                    var subCategoriesDto = new List <TenantSubCategoryDto>();
                    //categoryDto.Title = y.Category.Title;
                    var subCategories = tenantCategories.Where(z => z.Id == y.Category.Id)
                                        .Select(z => new {
                        subCategories = z.SubCategories.ToDictionary(z1 => z1.Id, z1 => z1.Title)
                    }).FirstOrDefault().subCategories;

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


                    return(new TenantDto
                    {
                        Id = y.Id,
                        TenancyName = y.TenancyName,
                        //Name = y.Name,
                        IsActive = y.IsActive,
                        ProfilePictureId = y.ProfilePictureId,
                        //Category = categoryDto,
                        //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(new TenantWithCategoryListDto
                {
                    CategoryTitle = x.Key,
                    Tenants = t
                });
            })
                        .ToList();

            return(new ListResultDto <TenantWithCategoryListDto>(items));

            /*
             * var items = tenants
             *  .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,
             *          //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();
             *
             * var category = await _tenantManager.Tenants
             *  .Where(x => x.IsActive == true)
             *  .Where(x => x.Category != null)
             *  .Include(x => x.Category)
             *  .GroupBy(x => x.Category.Title)
             *  .OrderBy(x => x.Key)
             *  .ToList();
             */

            return(new ListResultDto <TenantWithCategoryListDto>());
        }
Exemplo n.º 3
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);
        }