예제 #1
0
        public ActionResult Details(int id, string name, string content, int?categoryId, GridSortOptions gridSortOptions,
                                    [DefaultValue(1)] int page)
        {
            // Pobranie użytkownika po identyfikatorze
            var provider = _providerRepo.GetServiceProviderById(id);

            // Pobranie listy firm danego  użytkownika
            var companiesList = _companyRepo.GetCompaniesByUserId(provider.UserId);

            // Ustawienie domyślnej kolumny sortowania
            if (string.IsNullOrWhiteSpace(gridSortOptions.Column))
            {
                gridSortOptions.Column = "Id";
            }

            // Filtrowanie po kategorii firmy
            if (categoryId.HasValue)
            {
                companiesList = companiesList.Where(a => a.CategoryId == categoryId);
            }

            // Filtrowanie po nazwie firmy
            if (!string.IsNullOrWhiteSpace(name))
            {
                companiesList = companiesList.Where(a => a.Name.Contains(name));
            }

            // Filtrowanie po opisie firmy
            if (!string.IsNullOrWhiteSpace(content))
            {
                companiesList = companiesList.Where(a => a.Description.Contains(content));
            }

            // Utworzenie modelu do filtrowania firm
            var companiesFilterViewModel = new CompanyFilteredViewModel();

            companiesFilterViewModel.SelectedCategoryId = categoryId ?? -1;
            companiesFilterViewModel.Fill();

            // Stronicowanie i sortowanie listy firm
            var companiesPagedList = companiesList.OrderBy(gridSortOptions.Column, gridSortOptions.Direction)
                                     .AsPagination(page, 10);

            var companiesListContainer = new CompanyListContainerViewModel
            {
                CompanyPagedList         = companiesPagedList,
                CompanyFilteredViewModel = companiesFilterViewModel,
                GridSortOptions          = gridSortOptions
            };

            var serviceProviderCompaniesListContainer = new ServiceProviderCompaniesListContainerViewModel
            {
                Companies       = companiesListContainer,
                ServiceProvider = provider,
            };

            return(View(serviceProviderCompaniesListContainer));
        }
        public ActionResult Edit(int id)
        {
            ServiceProvider serviceProvider = _serviceProviderRepo.GetServiceProviderById(id);

            //using Microsoft.AspNet.Identity;
            if (serviceProvider.UserId == User.Identity.GetUserId() || User.IsInRole("administrator"))
            {
                return(View(serviceProvider));
            }

            TempData["Error"] = "Nie masz uprawnień do edytowania tego usługodawcy!";
            return(RedirectToAction("Index"));
        }