예제 #1
0
        public ActionResult Confirm(string name, string securityCode)
        {
            int id = WebSecurity.GetUserId(name);

            // Pobranie usługobiorcy po identyfikatorze użytkownika (nie wiadomo, czy potwierdzany użytkownik jest usługodawcą, czy usługobiorcą)
            var customer = _customerRepo.GetCustomerByUserId(id);

            // Pobranie usługodawcy po identyfikatorze użytkownika (nie wiadomo, czy potwierdzany użytkownik jest usługodawcą, czy usługobiorcą)
            var provider = _serviceProviderRepo.GetServiceProviderByUserId(id);

            // Jeśli użytkownik nie jest usługodawcą lub usługobiorcą, to jest to błąd.
            if (customer == null && provider == null)
            {
                TempData["Error"] = "Błąd weryfikacji konta!";
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                string hashDateInDatebase = string.Empty;

                if (customer != null)
                {
                    hashDateInDatebase = Konto.CalculateConfirmationCode(name, customer.Email, customer.RegistrationDate);
                }
                else
                {
                    hashDateInDatebase = Konto.CalculateConfirmationCode(name, provider.Email, provider.RegistrationDate);
                }

                // Jeżeli wyliczony kod zabezpieczający jest taki sam jak kod przesłany, to konto jest potwierdzone.
                if (securityCode.Equals(hashDateInDatebase, StringComparison.InvariantCultureIgnoreCase))
                {
                    if (provider != null)
                    {
                        // Potwierdzenie konta usługodawcy
                        provider.IsConfirmed = true;
                        _serviceProviderRepo.SaveChanges();
                    }
                    else
                    {
                        // Potwierdzenie konta usługobiorcy
                        customer.IsConfirmed = true;
                        _customerRepo.SaveChanges();
                    }

                    TempData["Message"] = "Pomyślnie potwierdzono adres e-mail!";
                }
                else
                {
                    //  Jeżeli wyliczony kod zabezpieczający jest różny od kodu przesłanego to zwracany jest błąd.
                    TempData["Error"] = "Błąd weryfikacji konta!";
                }
            }

            return(RedirectToAction("Index", "Home"));
        }
예제 #2
0
        public ActionResult Edit(int id, FormCollection formValues)
        {
            // Pobranie użytkownika po identyfikatorze
            var provider = _providerRepo.GetServiceProviderById(id);

            // Uaktualnienie modelu o nowe dane
            if (TryUpdateModel(provider))
            {
                // Zapisanie zmian w bazie danych
                _providerRepo.SaveChanges();
                TempData["Message"] = "Pomyślnie zmodyfikowano usługodawcę!";
                return(RedirectToAction("Details", new { id = provider.Id }));
            }
            else
            {
                TempData["Error"] = "Wystąpił błąd!";
                return(View(provider));
            }
        }
        public ActionResult Create(ServiceProvider serviceProvider)
        {
            serviceProvider.RegistrationDate = DateTime.Now;
            serviceProvider.UserId           = User.Identity.GetUserId();
            serviceProvider.IsConfirmed      = false;

            if (ModelState.IsValid)
            {
                try
                {
                    _serviceProviderRepo.Add(serviceProvider);
                    _serviceProviderRepo.SaveChanges();
                }
                catch (Exception)
                {
                    TempData["Error"] = "Uzupełnij poprawnie formularz!";
                }

                TempData["Message"] = "Profil usługobiorcy został poprawnie dodany";
                return(RedirectToAction("Index"));
            }

            return(View(serviceProvider));
        }