Beispiel #1
0
        public async Task Post([FromBody] Contact contact)
        {
            //using filter to validate model state

            addressBookService.CreateContact(contact);

            addressBookDbContext.SaveChanges();

            await addressBookBroadcaster.BroadcastContactsChanged(contact);
        }
Beispiel #2
0
        private void CreateEditions()
        {
            var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);

            if (defaultEdition == null)
            {
                defaultEdition = new Edition {
                    Name = EditionManager.DefaultEditionName, DisplayName = EditionManager.DefaultEditionName
                };
                _context.Editions.Add(defaultEdition);
                _context.SaveChanges();

                /* Add desired features to the standard edition, if wanted... */
            }
        }
Beispiel #3
0
        public void Get_ReturnsGroupedValues()
        {
            // arrange
            var options = new DbContextOptionsBuilder <AddressBookDbContext>()
                          .UseInMemoryDatabase(databaseName: "AddressBook")
                          .Options;

            using (var context = new AddressBookDbContext(options))
            {
                context.AddressBook.Add(new AddressBook {
                    FirstName = "Jane", LastName = "Jones", StreetAddress = "Test Rd 1", City = "Rome", Country = "Italy"
                });
                context.AddressBook.Add(new AddressBook {
                    FirstName = "Tim", LastName = "Smith", StreetAddress = "Test Rd 2", City = "Paris", Country = "France"
                });
                context.AddressBook.Add(new AddressBook {
                    FirstName = "John", LastName = "Doe", StreetAddress = "Test Rd 3", City = "Paris", Country = "France"
                });
                context.SaveChanges();
            }

            using (var context = new AddressBookDbContext(options))
            {
                // act
                var            controller = new AddressBookController(context);
                OkObjectResult result     = controller.Get() as OkObjectResult;
                var            content    = result.Value as IDictionary <string, List <AddressBook> >;

                // assert
                Assert.Equal(3, context.AddressBook.Count());
                Assert.IsType <OkObjectResult>(result);
                Assert.Equal(200, result.StatusCode);
                Assert.Equal(2, content.Count());
            }
        }
Beispiel #4
0
        public void TestDeleteContact()
        {
            var options = new DbContextOptionsBuilder <AddressBookDbContext>()
                          .UseInMemoryDatabase(databaseName: "DeleteContact")
                          .Options;


            Contact contact = CreateNewContact();

            using (var dbContext = new AddressBookDbContext(options))
            {
                var contactsDataAccess = new ContactsDataAccess(dbContext);

                contactsDataAccess.Create(contact);

                dbContext.SaveChanges();
            }

            using (var dbContext = new AddressBookDbContext(options))
            {
                var contactsDataAccess = new ContactsDataAccess(dbContext);

                Contact c = contactsDataAccess.GetById(contact.Id);
                contactsDataAccess.Delete(c);

                dbContext.SaveChanges();
            }

            using (var dbContext = new AddressBookDbContext(options))
            {
                Assert.Equal(0, dbContext.Contacts.Count());
                Assert.Equal(0, dbContext.Addresses.Count());
                Assert.Equal(0, dbContext.PhoneNumbers.Count());
            }
        }
Beispiel #5
0
        public static void Seed(AddressBookDbContext context)
        {
            context.Database.EnsureCreated();

            if (context.AddressBook.Any())
            {
                return;
            }

            List <AddressBook> addresses = new List <AddressBook>
            {
                new AddressBook {
                    FirstName = "John", LastName = "Smith", StreetAddress = "Test St 1", City = "London", Country = "England"
                },
                new AddressBook {
                    FirstName = "Jane", LastName = "Doe", StreetAddress = "Test St 2", City = "london", Country = "England"
                },
                new AddressBook {
                    FirstName = "Tim", LastName = "Jones", StreetAddress = "Test St 3", City = "New York", Country = "USA"
                }
            };

            foreach (AddressBook address in addresses)
            {
                context.AddressBook.Add(address);
            }
            context.SaveChanges();
        }
        public void Create()
        {
            new DefaultEditionCreator(_context).Create();
            new DefaultLanguagesCreator(_context).Create();
            new HostRoleAndUserCreator(_context).Create();
            new DefaultSettingsCreator(_context).Create();

            _context.SaveChanges();
        }
        private void AddLanguageIfNotExists(ApplicationLanguage language)
        {
            if (_context.Languages.IgnoreQueryFilters().Any(l => l.TenantId == language.TenantId && l.Name == language.Name))
            {
                return;
            }

            _context.Languages.Add(language);
            _context.SaveChanges();
        }
Beispiel #8
0
        private void AddSettingIfNotExists(string name, string value, int?tenantId = null)
        {
            if (_context.Settings.IgnoreQueryFilters().Any(s => s.Name == name && s.TenantId == tenantId && s.UserId == null))
            {
                return;
            }

            _context.Settings.Add(new Setting(tenantId, null, name, value));
            _context.SaveChanges();
        }
Beispiel #9
0
        public ContactRepositoryTests()
        {
            var dbContextOptions = new DbContextOptionsBuilder <AddressBookDbContext>()
                                   .UseInMemoryDatabase("AddressBookDatabase")
                                   .Options;

            _dbContext = new AddressBookDbContext(dbContextOptions);

            _dbContext.Contacts.AddRange(new List <Contact>
            {
                new Contact
                {
                    ContactId     = 1,
                    FirstName     = "Test First Name 1",
                    MiddleName    = "Test Middle Name 1",
                    LastName      = "Test Last Name 1",
                    DisplayName   = "Test Display Name 1",
                    StreetAddress = "Test Street Address 1",
                    City          = "Test City 1",
                    Region        = "TO",
                    PostalCode    = "12345",
                    Country       = "Test Country 1",
                    PhoneNumber   = "(012) 345-6789",
                    EmailAddress  = "*****@*****.**"
                },
                new Contact
                {
                    ContactId     = 2,
                    FirstName     = "Test First Name 2",
                    MiddleName    = "Test Middle Name 2",
                    LastName      = "Test Last Name 2",
                    DisplayName   = "Test Display Name 2",
                    StreetAddress = "Test Street Address 2",
                    City          = "Test City 2",
                    Region        = "TT",
                    PostalCode    = "67890",
                    Country       = "Test Country 2",
                    PhoneNumber   = "(123) 456-7890",
                    EmailAddress  = "*****@*****.**"
                }
            });

            _dbContext.SaveChanges();

            var mapperConfig = new MapperConfiguration(
                config => config.CreateMap <ContactDto, Contact>()
                );
            var mapper = mapperConfig.CreateMapper();

            var sieveProcessorOptions = Options.Create(new SieveOptions());
            var sieveProcessor        = new SieveProcessor(sieveProcessorOptions);

            _contactRepository = new ContactRepository(_dbContext, mapper, sieveProcessor);
        }
Beispiel #10
0
 protected virtual void Dispose(bool disposing)
 {
     if (!disposed)
     {
         if (disposing)
         {
             var allContacts = _dbContext.Contacts.ToList();
             _dbContext.Contacts.RemoveRange(allContacts);
             _dbContext.SaveChanges();
         }
         disposed = true;
     }
 }
Beispiel #11
0
        private void CreateDefaultTenant()
        {
            // Default tenant

            var defaultTenant = _context.Tenants.IgnoreQueryFilters().FirstOrDefault(t => t.TenancyName == AbpTenantBase.DefaultTenantName);

            if (defaultTenant == null)
            {
                defaultTenant = new Tenant(AbpTenantBase.DefaultTenantName, AbpTenantBase.DefaultTenantName);

                var defaultEdition = _context.Editions.IgnoreQueryFilters().FirstOrDefault(e => e.Name == EditionManager.DefaultEditionName);
                if (defaultEdition != null)
                {
                    defaultTenant.EditionId = defaultEdition.Id;
                }

                _context.Tenants.Add(defaultTenant);
                _context.SaveChanges();
            }
        }
Beispiel #12
0
        public void TestIsInAddressBook()
        {
            var options = new DbContextOptionsBuilder <AddressBookDbContext>()
                          .UseInMemoryDatabase(databaseName: "CreateContact")
                          .Options;


            using (var dbContext = new AddressBookDbContext(options))
            {
                var contactsDataAccess = new ContactsDataAccess(dbContext);

                contactsDataAccess.Create(CreateNewContact());

                dbContext.SaveChanges();
            }

            using (var dbContext = new AddressBookDbContext(options))
            {
                Assert.Equal(1, dbContext.Contacts.Count());
                Assert.Equal(1, dbContext.Addresses.Count());
                Assert.Equal(1, dbContext.PhoneNumbers.Count());
                Assert.True(dbContext.Contacts.First().Id > 0);
            }

            Contact sameContact = CreateNewContact();

            using (var dbContext = new AddressBookDbContext(options))
            {
                var contactsDataAccess = new ContactsDataAccess(dbContext);

                bool isInAddressBook = contactsDataAccess.IsInAddressBook(sameContact);

                Assert.True(isInAddressBook);

                sameContact.Name += "_Changed";

                isInAddressBook = contactsDataAccess.IsInAddressBook(sameContact);

                Assert.False(isInAddressBook);
            }
        }
        public void ContactPhoneNumber(int id, [FromBody] PhoneNumber phoneNumber)
        {
            addressBookService.AddNewPhoneNumberToContact(id, phoneNumber);

            context.SaveChanges();
        }
Beispiel #14
0
 protected void Save() => _context.SaveChanges();
Beispiel #15
0
        public bool Add(Person person)
        {
            _db.Address.Add(person);

            return(_db.SaveChanges() > 0);
        }
        private void CreateRolesAndUsers()
        {
            // Admin role

            var adminRole = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == _tenantId && r.Name == StaticRoleNames.Tenants.Admin);

            if (adminRole == null)
            {
                adminRole = _context.Roles.Add(new Role(_tenantId, StaticRoleNames.Tenants.Admin, StaticRoleNames.Tenants.Admin)
                {
                    IsStatic = true
                }).Entity;
                _context.SaveChanges();
            }

            // Grant all permissions to admin role

            var grantedPermissions = _context.Permissions.IgnoreQueryFilters()
                                     .OfType <RolePermissionSetting>()
                                     .Where(p => p.TenantId == _tenantId && p.RoleId == adminRole.Id)
                                     .Select(p => p.Name)
                                     .ToList();

            var permissions = PermissionFinder
                              .GetAllPermissions(new AddressBookAuthorizationProvider())
                              .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Tenant) &&
                                     !grantedPermissions.Contains(p.Name))
                              .ToList();

            if (permissions.Any())
            {
                _context.Permissions.AddRange(
                    permissions.Select(permission => new RolePermissionSetting
                {
                    TenantId  = _tenantId,
                    Name      = permission.Name,
                    IsGranted = true,
                    RoleId    = adminRole.Id
                })
                    );
                _context.SaveChanges();
            }

            // Admin user

            var adminUser = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == _tenantId && u.UserName == AbpUserBase.AdminUserName);

            if (adminUser == null)
            {
                adminUser                  = User.CreateTenantAdminUser(_tenantId, "*****@*****.**");
                adminUser.Password         = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(adminUser, "123qwe");
                adminUser.IsEmailConfirmed = true;
                adminUser.IsActive         = true;

                _context.Users.Add(adminUser);
                _context.SaveChanges();

                // Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(_tenantId, adminUser.Id, adminRole.Id));
                _context.SaveChanges();
            }
        }
        private void CreateHostRoleAndUsers()
        {
            // Admin role for host

            var adminRoleForHost = _context.Roles.IgnoreQueryFilters().FirstOrDefault(r => r.TenantId == null && r.Name == StaticRoleNames.Host.Admin);

            if (adminRoleForHost == null)
            {
                adminRoleForHost = _context.Roles.Add(new Role(null, StaticRoleNames.Host.Admin, StaticRoleNames.Host.Admin)
                {
                    IsStatic = true, IsDefault = true
                }).Entity;
                _context.SaveChanges();
            }

            // Grant all permissions to admin role for host

            var grantedPermissions = _context.Permissions.IgnoreQueryFilters()
                                     .OfType <RolePermissionSetting>()
                                     .Where(p => p.TenantId == null && p.RoleId == adminRoleForHost.Id)
                                     .Select(p => p.Name)
                                     .ToList();

            var permissions = PermissionFinder
                              .GetAllPermissions(new AddressBookAuthorizationProvider())
                              .Where(p => p.MultiTenancySides.HasFlag(MultiTenancySides.Host) &&
                                     !grantedPermissions.Contains(p.Name))
                              .ToList();

            if (permissions.Any())
            {
                _context.Permissions.AddRange(
                    permissions.Select(permission => new RolePermissionSetting
                {
                    TenantId  = null,
                    Name      = permission.Name,
                    IsGranted = true,
                    RoleId    = adminRoleForHost.Id
                })
                    );
                _context.SaveChanges();
            }

            // Admin user for host

            var adminUserForHost = _context.Users.IgnoreQueryFilters().FirstOrDefault(u => u.TenantId == null && u.UserName == AbpUserBase.AdminUserName);

            if (adminUserForHost == null)
            {
                var user = new User
                {
                    TenantId         = null,
                    UserName         = AbpUserBase.AdminUserName,
                    Name             = "admin",
                    Surname          = "admin",
                    EmailAddress     = "*****@*****.**",
                    IsEmailConfirmed = true,
                    IsActive         = true
                };

                user.Password = new PasswordHasher <User>(new OptionsWrapper <PasswordHasherOptions>(new PasswordHasherOptions())).HashPassword(user, "123qwe");
                user.SetNormalizedNames();

                adminUserForHost = _context.Users.Add(user).Entity;
                _context.SaveChanges();

                // Assign Admin role to admin user
                _context.UserRoles.Add(new UserRole(null, adminUserForHost.Id, adminRoleForHost.Id));
                _context.SaveChanges();

                _context.SaveChanges();
            }
        }