コード例 #1
0
        public IActionResult Create(CreateAccountViewModel viewModel)
        {
            // If basic syntax check returns false return to view with proper messages
            // defined in view model annotations.
            if (!ModelState.IsValid)
            {
                return(View());
            }

            Profile addedProfile = UserAccountServiceLogic.CreateProfile(viewModel);
            User    addedUser    = addedUser = UserAccountServiceLogic.CreateUser(viewModel, addedProfile);

            addedProfile.User = addedUser;

            if (UserAccountServiceLogic.AddUserAndDependenciesToDB(addedUser, userManager, viewModel, context).Result)
            {
                ViewBag.Message = localizer["CreateSuccess"];
                return(RedirectToAction("Login"));
            }
            else
            {
                ViewBag.Message = localizer["CreateFail"];
                return(View());
            }
        }
コード例 #2
0
        public async Task <IActionResult> Login(LogInViewModel viewModel)
        {
            // If basic syntax check returns false return to view with proper messages
            // defined in view model annotations.
            if (!ModelState.IsValid)
            {
                return(View());
            }

            // Check if account is locked.
            if (UserAccountServiceLogic.IsAccountLocked(context, viewModel))
            {
                return(View("Locked"));
            }

            var result = await signInManager.PasswordSignInAsync(viewModel.Login, viewModel.Password, true, false);

            // Redirect to home page or to specified view if it's name is stored in temporary data.
            // e.g. saved by other action.
            if (result.Succeeded)
            {
                var redirctPage = (string)TempData["RedirectPage"];
                if (redirctPage != null)
                {
                    return(View(redirctPage));
                }
                return(RedirectToAction("Index", "Home"));
            }
            else
            {
                ViewBag.Message = localizer["LoginFail"];
                return(View());
            }
        }
コード例 #3
0
        public async Task <IActionResult> Edit(EditProfileViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                // Form validation error.
                return(RedirectToAction("Edit"));
            }

            // Get user.
            User userData = await userManager.GetUserAsync(HttpContext.User);

            // Get user profile or null if does not exists.
            Profile profile = context.Profiles.Include(p => p.Address).Where(p => p.User == userData).First();


            Address viewModelAddress = new Address
            {
                Country      = viewModel.Country,
                Region       = viewModel.Region,
                City         = viewModel.City,
                Street       = viewModel.Street,
                StreetNumber = viewModel.StreetNumber
            };

            bool addressesSimilar = UserAccountServiceLogic.AddressesSimilarCheck(profile.Address, viewModelAddress);

            // Update address only if it has been changed by user.
            if (!addressesSimilar)
            {
                Address addressInDatabase = SearchEngine.FindAddressByContent(viewModelAddress, context);
                if (addressInDatabase != null)
                {
                    profile.Address   = addressInDatabase;
                    profile.AddressFK = addressInDatabase.ID;
                }
                else
                {
                    // Address not found in database
                    profile.Address = viewModelAddress;
                }
            }

            // Update all profile fields.
            profile.FirstName           = viewModel.FirstName;
            profile.LastName            = viewModel.LastName;
            profile.Gender              = viewModel.Gender;
            profile.BirthDate           = viewModel.BirthDate;
            profile.PrefLanguage        = viewModel.PrefLanguage;
            profile.PrefCurrency        = viewModel.PrefCurrency;
            profile.PresonalDescription = viewModel.PresonalDescription;
            profile.School              = viewModel.School;
            profile.Work = viewModel.Work;
            profile.BackupEmailAddress = viewModel.BackupEmailAddress;

            // Commit changes to database.
            await context.SaveChangesAsync();

            return(RedirectToAction("Edit"));
        }
コード例 #4
0
        public async Task <IActionResult> EditNotifications(EditNotificationsViewModel viewModel)
        {
            User currentUser = await userManager.GetUserAsync(HttpContext.User);

            NotificationsSetting notificationsSettings = context.NotificationSettings.Where(s => s.User == currentUser).Single();

            UserAccountServiceLogic.CopyNotificationSettings(notificationsSettings, viewModel);

            await context.SaveChangesAsync();

            return(RedirectToAction("Edit"));
        }
コード例 #5
0
ファイル: InitializeDb.cs プロジェクト: Next0r/PP_projekt
        /// <summary>
        /// Populates database with test users and their profiles.
        /// </summary>
        /// <param name="userManager"></param>
        /// <param name="context"></param>
        public static void CreateTestUsers(UserManager <User> userManager, AppDbContext context)
        {
            List <CreateAccountViewModel> usersData = new List <CreateAccountViewModel>
            {
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1990, 1, 1),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Jan",
                    LastName     = "Kowalski",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1980, 5, 5),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Preston",
                    LastName     = "Davis",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1970, 8, 15),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Andrew",
                    LastName     = "Walles",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1992, 12, 1),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Brian",
                    LastName     = "May",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1982, 4, 30),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Jack",
                    LastName     = "Tasack",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1962, 3, 18),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "James",
                    LastName     = "May",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1978, 6, 5),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Jim",
                    LastName     = "Raynor",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1984, 8, 12),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Sarah",
                    LastName     = "Kerrigan",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1976, 12, 1),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Varian",
                    LastName     = "Vrynn",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1984, 11, 5),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Jaina",
                    LastName     = "Proudmore",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1966, 8, 30),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Arthas",
                    LastName     = "Menethil",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1901, 2, 22),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Machete",
                    LastName     = "Cortez",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1960, 5, 23),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Peter",
                    LastName     = "Griffin",
                    Password     = "******"
                },
                new CreateAccountViewModel
                {
                    BirthDate    = new DateTime(1967, 8, 13),
                    EmailAddress = "*****@*****.**",
                    FirstName    = "Derwan",
                    LastName     = "Gościwuj",
                    Password     = "******"
                },
            };

            List <Profile> profiles = new List <Profile>();

            foreach (CreateAccountViewModel user in usersData)
            {
                profiles.Add(UserAccountServiceLogic.CreateProfile(user));
            }

            List <User> users = new List <User>();
            int         i     = 0;

            foreach (CreateAccountViewModel userData in usersData)
            {
                users.Add(UserAccountServiceLogic.CreateUser(userData, profiles[i]));
                i++;
            }
            i = 0;

            foreach (User user in users)
            {
                UserAccountServiceLogic.AddUserAndDependenciesToDB(user, userManager, usersData[i], context).Wait();
                i++;
            }
        }