예제 #1
0
        //
        // GET: /Company/Details/5

        public ActionResult Details(int id, [DefaultValue(1)] int page)
        {
            bool isConfirmed = false;

            // Pobranie firmy po identyfikatorze
            var company = _companyRepo.GetCompaniesViewModelById(id);

            // Pobranie listy komentarzy danej firmy
            var comments = _commentRepo.GetCommentByServiceId(id);


            var opinions = _opinionRepo.GetOpinionsByCompanyId(id);


            // Jeżeli użytkownik jest zalogowany i ma potwierdzone konto, to będzie widzieć listę komentarzy.
            var userId = WebSecurity.CurrentUserId;

            // Sprawdzenie, czy użytkownik potwierdził konto
            if (_providerRepo.IsServiceProvider(userId))
            {
                isConfirmed = _providerRepo.IsConfirmed(userId);
            }
            else if (_customerRepo.IsCustomer(userId))
            {
                isConfirmed = _customerRepo.IsConfirmed(userId);
            }

            // Sortowanie listy komentarzy oraz stronicowanie
            var commentsList = comments.OrderBy("Date", SortDirection.Ascending).AsPagination(page, 10);

            var companyDetails = new CompanyDetailsViewModel
            {
                Company          = company,
                CommentPagedList = commentsList,
                Opinions         = opinions.AsPagination(page, 10),
                ConfirmedUser    = isConfirmed,
            };

            return(View(companyDetails));
        }
예제 #2
0
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            bool isConfirmed = false;

            if (ModelState.IsValid)
            {
                int userId = WebSecurity.GetUserId(model.UserName);

                // Sprawdzenie, czy użytkownik jest usługobiorcą
                var isCustomer = _customerRepo.IsCustomer(userId);

                if (isCustomer)
                {
                    // Sprawdzenie, czy usługobiorca potwierdził swoje konto
                    isConfirmed = _customerRepo.IsConfirmed(userId);
                }
                else
                {
                    // Sprawdzenie, czy użytkownik jest usługodawcą
                    var isProvider = _serviceProviderRepo.IsServiceProvider(userId);

                    if (isProvider)
                    {
                        // Sprawdzenie, czy usługodawca potwierdził swoje konto
                        isConfirmed = _serviceProviderRepo.IsConfirmed(userId);
                    }
                }

                if (Roles.IsUserInRole(model.UserName, "Administrator"))
                {
                    // Jeżeli użytkownik jest administratorem, to jego konto jest potwierdzone
                    isConfirmed = true;
                }

                if (isConfirmed)
                {
                    // Jeżeli użytkownik ma potwierdzone konto, to następuje zalogowanie
                    if (WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
                    {
                        if (Url.IsLocalUrl(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Nazwa użytkownika lub hasło są niepoprawne.");
                        return(View(model));
                    }
                }
                else
                {
                    //  Jeżeli wyliczony kod zabezpieczający jest różny od kodu przesłanego, to zwracany jest błąd.
                    TempData["Error"] = "Nie potwierdziłeś jeszcze rejestracji. Twoje konto jest nieaktywne.";
                    return(View(model));
                }
            }

            // Wpisane do formularza dane są niepoprawne, więc zwracany jest ten sam widok.
            ModelState.AddModelError("", "Nazwa użytkownika lub hasło są niepoprawne.");

            return(View(model));
        }