コード例 #1
0
        public void SaveSpecialOrderShouldSaveOrderCorrect()
        {
            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Save_Special_Order_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var user = new WAGUser()
            {
                UserName = "******",
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var makeSpecialOrderViewModel = new MakeSpecialOrderViewModel()
            {
                OrderInfo = "Test order info"
            };

            var service = new OrderService(dbContext, null);

            service.SaveSpecialOrder(user, makeSpecialOrderViewModel);

            var savedSpecialOrder = dbContext.Orders.FirstOrDefault();

            Assert.NotNull(savedSpecialOrder);
            Assert.Equal(makeSpecialOrderViewModel.OrderInfo, savedSpecialOrder.OrderInfo);
            Assert.Equal(user, savedSpecialOrder.WAGUser);
        }
コード例 #2
0
        public void DeleteOrderShouldDeleteOrderCorrect()
        {
            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Delete_Order_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var service = new OrderService(dbContext, null);

            var user = new WAGUser()
            {
                UserName = "******",
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var order = new Order()
            {
                OrderInfo = "Test order info",
                WAGUser   = user,
            };

            dbContext.Orders.Add(order);
            dbContext.SaveChanges();

            Assert.Contains(order, dbContext.Orders);

            var orderId = dbContext.Orders.LastOrDefault().Id;

            service.DeleteOrder(orderId);

            Assert.DoesNotContain(order, dbContext.Orders);
        }
コード例 #3
0
        public void SaveOrder(WAGUser user, MakeOrderViewModel makeOrderViewModel)
        {
            var artwork = ArtisticWorkService.GetArtisticWorkById(makeOrderViewModel.ArtWorkId);

            if (makeOrderViewModel.TelephoneNumberForContact == null)
            {
                makeOrderViewModel.TelephoneNumberForContact = user.PhoneNumber;
            }

            if (makeOrderViewModel.DeliveryAddress == null)
            {
                makeOrderViewModel.DeliveryAddress = user.Address;
            }

            var order = new Order()
            {
                WAGUser      = user,
                ArtisticWork = artwork,
                OrderInfo    = makeOrderViewModel.OrderInfo,
                TelephoneNumberForContact = makeOrderViewModel.TelephoneNumberForContact,
                DeliveryAddress           = makeOrderViewModel.DeliveryAddress,
                CreatedOn = DateTime.UtcNow
            };

            this.DbContext.Orders.Add(order);
            this.DbContext.SaveChanges();
        }
コード例 #4
0
        public void GetOrderByIdShouldReturnsOrderById()
        {
            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Get_Order_ById_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var service = new OrderService(dbContext, null);

            var user = new WAGUser()
            {
                UserName = "******",
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var userId = dbContext.Users.LastOrDefault().Id;

            var order = new Order()
            {
                OrderInfo = "Test order info",
                WAGUser   = user,
            };

            dbContext.Orders.Add(order);
            dbContext.SaveChanges();

            var orderId = dbContext.Orders.LastOrDefault().Id;

            var wantedOrder = service.GetOrderById(orderId);

            Assert.Equal(order, wantedOrder);
        }
コード例 #5
0
        public async Task <IdentityResult> RemoveUserFromRoleAsync(WAGUser user, string role)
        {
            var result = new IdentityResult();

            if (user != null &&
                this.RoleManager.RoleExistsAsync(role).Result&&
                UserManager.IsInRoleAsync(user, role).Result)
            {
                result = await this.UserManager.RemoveFromRoleAsync(user, role);
            }

            return(result);
        }
コード例 #6
0
        public async Task <IdentityResult> CreateUserAsync(RegisterInputViewModel registerInputViewModel)
        {
            var user = new WAGUser()
            {
                UserName    = registerInputViewModel.UserName,
                FirstName   = registerInputViewModel.FirstName,
                LastName    = registerInputViewModel.LastName,
                City        = registerInputViewModel.City,
                Email       = registerInputViewModel.Email,
                PhoneNumber = registerInputViewModel.PhoneNumber,
                Address     = registerInputViewModel.Address
            };

            return(await this.UserManager.CreateAsync(user, registerInputViewModel.Password));
        }
コード例 #7
0
        public void EditUserProfile(WAGUser user, EditUserProfileInputViewModel editUserProfileInputViewModel)
        {
            var userToUpdate = this.DbContext.Users.FirstOrDefault(u => u == user);

            if (userToUpdate != null)
            {
                userToUpdate.FirstName   = editUserProfileInputViewModel.FirstName;
                userToUpdate.LastName    = editUserProfileInputViewModel.LastName;
                userToUpdate.Email       = editUserProfileInputViewModel.Email;
                userToUpdate.PhoneNumber = editUserProfileInputViewModel.PhoneNumber;
                userToUpdate.City        = editUserProfileInputViewModel.City;
                userToUpdate.Address     = editUserProfileInputViewModel.Address;
            }

            this.DbContext.SaveChanges();
        }
コード例 #8
0
        public void GetUserOrdersShouldReturnsUsersOrders()
        {
            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Get_User_Orders_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var service = new OrderService(dbContext, null);

            var user = new WAGUser()
            {
                UserName = "******",
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var userId = dbContext.Users.LastOrDefault().Id;

            var firstOrder = new Order()
            {
                OrderInfo = "First",
                WAGUser   = user,
            };

            var secondOrder = new Order()
            {
                OrderInfo = "Second",
                WAGUser   = user,
            };

            dbContext.Orders.Add(firstOrder);
            dbContext.Orders.Add(secondOrder);
            dbContext.SaveChanges();

            var userOrders = service.GetUserOrders(userId);

            var ordersCount = dbContext
                              .Users
                              .FirstOrDefault(u => u.Id == userId)
                              .Orders.Count();

            Assert.Equal(ordersCount, userOrders.Count);
            Assert.Contains(firstOrder, userOrders);
            Assert.Contains(secondOrder, userOrders);
        }
コード例 #9
0
        public async Task <IdentityResult> AddUserInRoleAsync(WAGUser user, string role)
        {
            var result = new IdentityResult();

            if (user != null)
            {
                if (this.RoleManager.RoleExistsAsync(role).Result)
                {
                    if (!UserManager.IsInRoleAsync(user, role).Result)
                    {
                        result = await this.UserManager.AddToRoleAsync(user, role);
                    }
                }
            }

            return(result);
        }
コード例 #10
0
        public void SaveOrderShouldSaveOrderCorrect()
        {
            var options = new DbContextOptionsBuilder <WAGDbContext>()
                          .UseInMemoryDatabase(databaseName: "Save_Order_Db")
                          .Options;

            var dbContext = new WAGDbContext(options);

            var user = new WAGUser()
            {
                UserName = "******",
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            var makeOrderViewModel = new MakeOrderViewModel()
            {
                ArtWorkId = 5,
                OrderInfo = "Test order info",
            };

            var artisticWorkService = new Mock <IArtisticWorkService>();

            artisticWorkService
            .Setup(a => a.GetArtisticWorkById(makeOrderViewModel.ArtWorkId))
            .Returns(new ArtisticWork()
            {
                Id = 5
            });

            var service = new OrderService(dbContext, artisticWorkService.Object);

            service.SaveOrder(user, makeOrderViewModel);

            var savedOrder = dbContext.Orders.LastOrDefault();

            Assert.NotNull(savedOrder);
            Assert.Equal(makeOrderViewModel.ArtWorkId, savedOrder.ArtisticWorkId);
            Assert.Equal(makeOrderViewModel.OrderInfo, savedOrder.OrderInfo);
        }
コード例 #11
0
        public IActionResult Register(RegisterInputViewModel registerInputViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(this.View(registerInputViewModel));
            }

            WAGUser userNew        = mapper.Map <WAGUser>(registerInputViewModel);
            var     registerResult = this.UserAccountService.CreateUserAsync(userNew, registerInputViewModel.Password).Result;

            if (!registerResult.Succeeded)
            {
                registerInputViewModel.UnsuccessfulRegistrationMessage = UnsuccessfulRegistrationMessage;

                return(this.View(registerInputViewModel));
            }

            var currUser = this.UserAccountService.GetUserByUserName(registerInputViewModel.UserName);

            this.UserAccountService.AddUserInRoleAsync(currUser, GlobalConstants.UserRole).GetAwaiter().GetResult();

            return(RedirectToAction("Login", "UserAccount"));
        }
コード例 #12
0
        private static async Task SeedUserInRoles(UserManager <WAGUser> userManager)
        {
            if (!userManager.Users.Any())
            {
                var user = new WAGUser
                {
                    UserName  = "******",
                    Email     = "*****@*****.**",
                    FirstName = "AdminFirstName",
                    LastName  = "AdminLastName",
                };

                var password = "******";

                var userCreated = await userManager.CreateAsync(user, password);

                if (userCreated.Succeeded)
                {
                    await userManager.AddToRoleAsync(user, GlobalConstants.AdminRole);

                    await userManager.AddToRoleAsync(user, GlobalConstants.UserRole);
                }
            }
        }
コード例 #13
0
        public void SaveSpecialOrder(WAGUser user, MakeSpecialOrderViewModel makeSpecialOrderViewModel)
        {
            if (makeSpecialOrderViewModel.TelephoneNumberForContact == null)
            {
                makeSpecialOrderViewModel.TelephoneNumberForContact = user.PhoneNumber;
            }

            if (makeSpecialOrderViewModel.DeliveryAddress == null)
            {
                makeSpecialOrderViewModel.DeliveryAddress = user.Address;
            }

            var order = new Order()
            {
                WAGUser   = user,
                OrderInfo = makeSpecialOrderViewModel.OrderInfo,
                TelephoneNumberForContact = makeSpecialOrderViewModel.TelephoneNumberForContact,
                DeliveryAddress           = makeSpecialOrderViewModel.DeliveryAddress,
                CreatedOn = DateTime.UtcNow
            };

            this.DbContext.Orders.Add(order);
            this.DbContext.SaveChanges();
        }
コード例 #14
0
 public void ChangePassword(WAGUser user, string currPassword, string newPassword)
 {
     var result = this.UserManager.ChangePasswordAsync(user, currPassword, newPassword).Result;
 }
コード例 #15
0
 public async Task <IdentityResult> CreateUserAsync(WAGUser userModel, string userParssword)
 {
     return(await this.UserManager.CreateAsync(userModel, userParssword));
 }