Example #1
0
 public ActionResult Create(ServiceProvider providers)
 {
     try
     {
         // TODO: Add insert logic here
         ServiceProviderRepository.Add(providers);
         return(RedirectToAction(nameof(Index)));
     }
     catch
     {
         return(View());
     }
 }
        public void CanServiceProviderRepositoryDeleteProvider()
        {
            //arrange
            var testProvider = new ServiceProvider()
            {
                Id   = 10,
                Name = "NoHands McGee"
            };

            //act
            ServiceProviderRepository.Add(testProvider);
            ServiceProviderRepository.DeleteProvider(testProvider.Id);

            //assert
            var p = ServiceProviderRepository.Providers.FirstOrDefault(x => x.Id == testProvider.Id);

            Assert.Null(p);
        }
Example #3
0
        public void CanServiceProviderRepositoryDeleteProvider()
        {
            //arrange
            var mockSpaContext             = new Mock <SpaContext>(null);
            var mockReadOnlySpaContext     = new Mock <IReadOnlySpaContext>();
            ServiceProviderRepository repo = new ServiceProviderRepository(
                mockSpaContext.Object, mockReadOnlySpaContext.Object);
            var testProvider = new ServiceProvider()
            {
                Id   = 10,
                Name = "NoHands McGee"
            };

            //act
            repo.Add(testProvider);
            repo.DeleteProvider(testProvider.Id);

            //assert
            var p = repo.ServiceProviders.FirstOrDefault(x => x.Id == testProvider.Id);

            Assert.Null(p);
        }
        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));
        }
        public ActionResult Register(RegisterModel model, bool captchaValid)
        {
            if (captchaValid)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        // Utworzenie użytkownika przy pomocy mechanizmu SimpleMembership
                        WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                        int      userId           = WebSecurity.GetUserId(model.UserName);
                        DateTime registrationDate = DateTime.Now;

                        try
                        {
                            // Tworzenie usługodawcy.
                            if (model.IsProvider)
                            {
                                // Utworzenie roli Usługodawca, jeśli jeszcze nie istnieje
                                string roleName = ConfigurationManager.AppSettings["ProviderRole"];

                                if (!Roles.RoleExists(roleName))
                                {
                                    Roles.CreateRole(roleName);
                                }

                                // Dodanie użytkownika do roli
                                Roles.AddUserToRole(model.UserName, roleName);

                                // Utworzenie usługodawcy
                                var provider = new ServiceProvider();

                                if (string.IsNullOrEmpty(model.Name))
                                {
                                    provider.Name = model.UserName;
                                }
                                else
                                {
                                    provider.Name = model.Name;
                                }

                                provider.Email            = model.Email;
                                provider.UserId           = userId;
                                provider.ZipCode          = model.ZipCode;
                                provider.City             = model.City;
                                provider.Street           = model.Street;
                                provider.PhoneNumber      = model.PhoneNumber;
                                provider.RegistrationDate = registrationDate;


                                // Zapisanie usługodawcy w bazie danych
                                _serviceProviderRepo.Add(provider);
                                _serviceProviderRepo.SaveChanges();
                            }
                            else
                            {
                                // Tworzenie usługobiorcy

                                // Utworzenie roli Usługobiorca, jeśli jeszcze nie istnieje
                                string roleName = ConfigurationManager.AppSettings["CustomerRole"];

                                if (!Roles.RoleExists(roleName))
                                {
                                    Roles.CreateRole(roleName);
                                }

                                // Dodanie użytkownika do roli
                                Roles.AddUserToRole(model.UserName, roleName);

                                // Utworzenie usługobiorcy
                                var customer = new Customer();
                                customer.LastName         = model.LastName;
                                customer.FirstName        = model.FirstName;
                                customer.Email            = model.Email;
                                customer.UserId           = userId;
                                customer.ZipCode          = model.ZipCode;
                                customer.City             = model.City;
                                customer.Street           = model.Street;
                                customer.RegistrationDate = registrationDate;


                                // Zapisanie usługobiorcy w bazie danych
                                _customerRepo.Add(customer);
                                _customerRepo.SaveChanges();
                            }


                            // Wygenerowanie linku potwierdzającego rejestrację konta w portalu przy użyciu klasy AccountHelper
                            var confirmedUrl = string.Format("http://{0}{1}{2}",
                                                             Request.Url.Host, (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port), Url.RouteUrl(new { controller = "Account", action = "Confirm", name = model.UserName, securityCode = Konto.CalculateConfirmationCode(model.UserName, model.Email, registrationDate) }));

                            // Wygenerowanie treści e-maila, który zostanie wysłany do użytkownika z linkiem potwierdzającym rejestrację
                            var mailContent =
                                string.Format(
                                    "Witaj!\n\nUtworzyłeś nowe konto w serwisie Portal Usług.\nAdres e-mail: {0}\nData utworzenia: {1}\n\nLink potwierdzający założenie konta: {2}",
                                    model.Email, DateTime.Now, confirmedUrl);

                            // Wysłanie e-maila przy użyciu klasy MailHelper
                            Mail.SendEmail(model.Email, model.UserName, "Potwierdzenie konta", mailContent);

                            TempData["Message"] = "Użytkownik został zarejestrowany. Potwierdź swoje konto linkiem w e-mailu.";
                            return(RedirectToAction("Index", "Home"));
                        }
                        catch
                        {
                            // W razie niepowodzenia należy usunąć utworzone konto użytkownika
                            ((SimpleMembershipProvider)Membership.Provider).DeleteAccount(model.UserName);
                            TempData["Error"] = "Cos poszło nie tak!";
                            return(View());
                        }
                    }
                    catch (MembershipCreateUserException e)
                    {
                        ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                    }
                }

                return(View(model));
            }
            else
            {
                ModelState.AddModelError("Captcha", "Wpisany wynik jest niepoprawny.");
                return(View(model));
            }
        }