public override void TestInitialize()
        {
            base.TestInitialize();
            organizationUserIds = new List<Guid>();

            var organization = CreateOrganization();
            originalOrganizationUser = CreateOrganizationUser(organization.OrganizationId);
        }
 public void CreateOrganizationUser(OrganizationUser organizationUser)
 {
     using(var context = dataContextProvider.Get())
     {
         context.GetTable<OrganizationUser>().InsertOnSubmit(organizationUser);
         context.SubmitChanges();
     }
 }
        private static void CheckOrganizationUsers(OrganizationUser original, OrganizationUser loaded)
        {
            Assert.AreEqual(original.OrganizationUserId, loaded.OrganizationUserId);
            Assert.AreEqual(original.UserId, loaded.UserId);
            Assert.AreEqual(original.OrganizationId, loaded.OrganizationId);
            Assert.AreEqual(original.IsAdministrator, loaded.IsAdministrator);

            Assert.Greater(2, (original.DateTimeCreated - loaded.DateTimeCreated).TotalMilliseconds);

            if (!original.DateTimeDeleted.HasValue)
                Assert.IsNull(loaded.DateTimeDeleted);
            else
                Assert.Greater(2, (original.DateTimeDeleted.Value - loaded.DateTimeDeleted.Value).TotalMilliseconds);
        }
        public void CreateOrganizationUser(OrganizationUser organizationUser)
        {
            organizationUsers.TryAdd(organizationUser.OrganizationUserId, organizationUser);

            if(!organizationUsersByOrganization.ContainsKey(organizationUser.OrganizationId))
            {
                organizationUsersByOrganization.TryAdd(organizationUser.OrganizationId, new ConcurrentDictionary<Guid, OrganizationUser>());
            }
            organizationUsersByOrganization[organizationUser.OrganizationId].TryAdd(organizationUser.OrganizationUserId, organizationUser);

            if(!organizationUsersByUser.ContainsKey(organizationUser.UserId))
            {
                organizationUsersByUser.TryAdd(organizationUser.UserId, new ConcurrentDictionary<Guid, OrganizationUser>());
            }
            organizationUsersByUser[organizationUser.UserId].TryAdd(organizationUser.OrganizationUserId, organizationUser);
        }
        private OrganizationUser CreateOrganizationUser(Guid organizationId)
        {
            var organizationUser = new OrganizationUser
            {
                OrganizationUserId = Guid.NewGuid(),
                UserId = UserId,
                DateTimeCreated = DateTime.Now,
                OrganizationId = organizationId
            };

            organizationUserIds.Add(organizationUser.OrganizationUserId);

            Manager.CreateOrganizationUser(organizationUser);
            return organizationUser;
        }
 public void UpdateOrganizationUser(OrganizationUser organizationUser)
 {
     using(var context = dataContextProvider.Get())
     {
         context.GetTable<OrganizationUser>().Attach(organizationUser);
         context.Refresh(RefreshMode.KeepCurrentValues, organizationUser);
         context.SubmitChanges();
     }
 }
 public void UpdateOrganizationUser(OrganizationUser organizationUser)
 {
     organizationUsers[organizationUser.OrganizationUserId] = organizationUser;
     organizationUsersByOrganization[organizationUser.OrganizationId][organizationUser.OrganizationUserId] = organizationUser;
     organizationUsersByUser[organizationUser.UserId][organizationUser.OrganizationUserId] = organizationUser;
 }