Пример #1
0
        public void UpdateUser(DT.User user)
        {
            if (user.Id != UserManager.CurrentUserId)
            {
                RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
            }

            MembershipUser membershipUser = Membership.GetUser((object)user.Id);

            if (membershipUser != null)
            {
                membershipUser.Email      = user.Email;
                membershipUser.IsApproved = user.IsApproved;
                membershipUser.Comment    = user.Comment;
                Membership.UpdateUser(membershipUser);
            }

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from u in context.UserGroupBases.OfType <DA.User>()
                            where u.Id == user.Id
                            select u;
                if (query.Count() > 0)
                {
                    DA.User u = query.First();
                    u.FullName = user.FullName;
                    context.SubmitChanges();
                }
            }
        }
Пример #2
0
 public void AddClientLog(DT.ClientLog log)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         context.ClientLogs.InsertOnSubmit(Convert.ToEntity(log));
         context.SubmitChanges();
     }
 }
Пример #3
0
        public void DeleteUser(DT.User user)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            if (user.Id != null && user.Id != Guid.Empty)
            {
                //delete asp.net user
                Membership.DeleteUser(user.UserName);
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    var query = context.UserGroupBases.OfType <DA.User>().Where(x => x.Id == user.Id);
                    if (query.Count() > 0)
                    {
                        //delete affiliation first
                        var queryMapping = context.UserGroupUserGroups.Where(x => x.UserGroupId == user.Id);
                        if (queryMapping.Count() > 0)
                        {
                            context.UserGroupUserGroups.DeleteAllOnSubmit(queryMapping);
                        }

                        //delete user from access db
                        context.UserGroupBases.DeleteOnSubmit(query.First());
                        context.SubmitChanges();
                    }
                }
            }
        }
Пример #4
0
 public void ReportError(DT.ClientError error)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         context.ClientErrors.InsertOnSubmit(Convert.ToEntity(error));
         context.SubmitChanges();
     }
 }
Пример #5
0
 public void UpdateUserGroup(DT.UserGroup group)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         DA.UserGroup entity = context.UserGroupBases.OfType <DA.UserGroup>().FirstOrDefault(x => x.Id == group.Id);
         Convert.ToEntity(group, entity);
         context.SubmitChanges();
     }
 }
Пример #6
0
        public void DeleteClientLog(DT.ClientLog log)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                context.ClientLogs.DeleteOnSubmit(Convert.ToEntity(log));
                context.SubmitChanges();
            }
        }
Пример #7
0
        private DT.User BuildUserDto(Guid userId)
        {
            DA.aspnet_User       aspUser       = null;
            DA.aspnet_Membership aspMembership = null;
            DA.User accessUser = null;

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var userQuery = from u in context.aspnet_Users
                                where u.UserId == userId
                                select u;
                if (userQuery.Count() == 1)
                {
                    aspUser = userQuery.First();
                }

                var memQuery = from u in context.aspnet_Memberships
                               where u.UserId == userId
                               select u;
                if (memQuery.Count() == 1)
                {
                    aspMembership = memQuery.First();
                }
            }

            if (aspUser != null || aspMembership != null)
            {
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    var query = from u in context.UserGroupBases.OfType <DA.User>()
                                where u.Id == userId
                                select u;
                    if (query.Count() == 1)
                    {
                        accessUser = query.First();
                    }
                    else
                    {
                        //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
                        DA.User user = new DA.User();
                        user.Id       = userId;
                        user.FullName = "Not set";
                        context.UserGroupBases.InsertOnSubmit(user);
                        context.SubmitChanges();
                        accessUser = user;
                    }
                }
            }

            if (aspUser == null || aspMembership == null || accessUser == null)
            {
                throw new Exception("User with id " + userId + " not found.");
            }
            else
            {
                return(Convert.ToDto(accessUser, aspUser, aspMembership));
            }
        }
Пример #8
0
        public void AddClient(DT.Client client)
        {
            string country = string.Empty;

            OperationContext opContext = OperationContext.Current;

            if (opContext != null)
            {
                MessageProperties             properties = opContext.IncomingMessageProperties;
                RemoteEndpointMessageProperty endpoint   = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                string ipAdr = endpoint.Address;
                country = GeoIPLookupService.Instance.GetCountryName(ipAdr);
            }

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                DA.Client entity = Convert.ToEntity(client);

                if (country != string.Empty)
                {
                    var query = from c in context.GetTable <DA.Country>()
                                where c.Name == country
                                select c;
                    if (query.Count() > 0)
                    {
                        entity.CountryId = query.First().Id;
                    }
                }

                if (entity.OperatingSystem != null)
                {
                    string osversion = entity.OperatingSystem.Name;
                    var    query     = from os in context.GetTable <DA.OperatingSystem>()
                                       where os.Name == osversion
                                       select os;
                    if (query.Count() > 0)
                    {
                        entity.OperatingSystem = query.First();
                    }
                }

                if (entity.ClientType != null)
                {
                    string cType = entity.ClientType.Name;
                    var    query = from t in context.GetTable <DA.ClientType>()
                                   where t.Name == cType
                                   select t;
                    if (query.Count() > 0)
                    {
                        entity.ClientType = query.First();
                    }
                }

                context.Resources.InsertOnSubmit(entity);
                context.SubmitChanges();
            }
        }
Пример #9
0
 public void AddUserGroupBaseToGroup(DT.UserGroupBase resource, DT.UserGroup group)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         DA.UserGroupUserGroup ugug = new DA.UserGroupUserGroup();
         ugug.UserGroupId          = resource.Id;
         ugug.UserGroupUserGroupId = group.Id;
         context.UserGroupUserGroups.InsertOnSubmit(ugug);
         context.SubmitChanges();
     }
 }
Пример #10
0
 public void RemoveResourceFromGroup(DT.Resource resource, DT.ClientGroup group)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         var query = context.ResourceResourceGroups.Where(x => x.ResourceId == resource.Id && x.ResourceGroupId == group.Id);
         if (query.Count() > 0)
         {
             context.ResourceResourceGroups.DeleteOnSubmit(query.First());
             context.SubmitChanges();
         }
     }
 }
Пример #11
0
        public Guid AddUserGroup(DT.UserGroup group)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                //because id is not automatically set because of user, we have to do it here manually for group
                group.Id = Guid.NewGuid();

                context.UserGroupBases.InsertOnSubmit(Convert.ToEntity(group));
                context.SubmitChanges();
                return(group.Id);
            }
        }
Пример #12
0
        public DT.User AddUser(DT.User user)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            DA.User              accessUser;
            DA.aspnet_User       aspUser;
            DA.aspnet_Membership aspMembership;
            bool userExistsInASP;

            Convert.ToEntity(user, out accessUser, out aspUser, out aspMembership, out userExistsInASP);

            if (userExistsInASP)
            {
                if (accessUser.Id == null || accessUser.Id == Guid.Empty)
                {
                    accessUser.Id = aspMembership.UserId;
                }
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    context.UserGroupBases.InsertOnSubmit(accessUser);
                    context.SubmitChanges();
                }
                MembershipUser membershipUser = Membership.GetUser((object)accessUser.Id);
                if (membershipUser != null)
                {
                    membershipUser.Email      = aspMembership.Email;
                    membershipUser.IsApproved = aspMembership.IsApproved;
                    membershipUser.Comment    = aspMembership.Comment;
                    Membership.UpdateUser(membershipUser);
                }
            }
            else
            {
                MembershipUser membershipUser = Membership.CreateUser(aspUser.UserName, aspUser.UserName, aspMembership.Email);
                membershipUser.IsApproved = aspMembership.IsApproved;
                membershipUser.Comment    = aspMembership.Comment;
                Membership.UpdateUser(membershipUser);

                Guid userId = (Guid)membershipUser.ProviderUserKey;
                accessUser.Id = userId;

                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    context.UserGroupBases.InsertOnSubmit(accessUser);
                    context.SubmitChanges();
                }
            }

            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var newAspUser       = context.aspnet_Users.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
                var newAspMembership = context.aspnet_Memberships.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
                return(Convert.ToDto(accessUser, newAspUser, newAspMembership));
            }
        }
Пример #13
0
        public void DeleteError(DT.ClientError error)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = context.ClientErrors.Where(x => x.Id == error.Id);
                if (query.Count() > 0)
                {
                    context.ClientErrors.DeleteOnSubmit(query.First());
                    context.SubmitChanges();
                }
            }
        }
Пример #14
0
        public void AddResourceToGroup(DT.Resource resource, DT.ClientGroup group)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                DA.ResourceResourceGroup rrg = new DA.ResourceResourceGroup()
                {
                    ResourceId      = resource.Id,
                    ResourceGroupId = group.Id
                };

                context.ResourceResourceGroups.InsertOnSubmit(rrg);
                context.SubmitChanges();
            }
        }
Пример #15
0
        public void RemoveUserGroupBaseFromGroup(DT.UserGroupBase resource, DT.UserGroup userGroup)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from u in context.UserGroupUserGroups
                            where u.UserGroupId == resource.Id && u.UserGroupUserGroupId == userGroup.Id
                            select u;

                if (query.Count() == 1)
                {
                    context.UserGroupUserGroups.DeleteOnSubmit(query.First());
                    context.SubmitChanges();
                }
            }
        }
Пример #16
0
        public Guid AddClientGroup(DT.ClientGroup group)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                if (group.Id == Guid.Empty)
                {
                    group.Id = Guid.NewGuid();
                }

                var entity = Convert.ToEntity(group);
                context.Resources.InsertOnSubmit(entity);
                context.SubmitChanges();
                return(entity.Id);
            }
        }
Пример #17
0
        public void UpdateClientGroup(DT.ClientGroup clientGroup)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from g in context.Resources.OfType <DA.ClientGroup>()
                            where g.Id == clientGroup.Id
                            select g;

                if (query.Count() > 0)
                {
                    var entity = query.First();
                    entity.Name        = clientGroup.Name;
                    entity.Description = clientGroup.Description;
                    context.SubmitChanges();
                }
            }
        }
Пример #18
0
        public void DeleteClientGroup(DT.ClientGroup clientGroup)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                //load clientGroup because we could get a detached object
                var query = from c in context.GetTable <DA.Resource>().OfType <DA.ClientGroup>()
                            where c.Id == clientGroup.Id
                            select c;
                if (query.Count() > 0)
                {
                    context.Resources.DeleteOnSubmit(query.First());
                    context.SubmitChanges();
                }
            }
        }
Пример #19
0
        public void UpdateClient(DT.Client client)
        {
            string country = string.Empty;

            OperationContext opContext = OperationContext.Current;

            if (opContext != null)
            {
                MessageProperties             properties = opContext.IncomingMessageProperties;
                RemoteEndpointMessageProperty endpoint   = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                string ipAdr = endpoint.Address;
                country = GeoIPLookupService.Instance.GetCountryName(ipAdr);
            }

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from c in context.Resources.OfType <DA.Client>()
                            where c.Id == client.Id
                            select c;

                if (query.Count() > 0)
                {
                    var entity = query.First();

                    if (country != string.Empty)
                    {
                        var countryQuery = from c in context.GetTable <DA.Country>()
                                           where c.Name == country
                                           select c;
                        if (countryQuery.Count() > 0)
                        {
                            entity.CountryId = countryQuery.First().Id;
                        }
                    }

                    entity.Name                = client.Name;
                    entity.Description         = client.Description;
                    entity.HeuristicLabVersion = client.HeuristicLabVersion;
                    entity.Timestamp           = DateTime.Now;

                    context.SubmitChanges();
                }
            }
        }
Пример #20
0
        public void DeleteClient(DT.Client client)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                //load client because we could get a detached object
                var query = from c in context.GetTable <DA.Resource>().OfType <DA.Client>()
                            where c.Id == client.Id
                            select c;
                if (query.Count() > 0)
                {
                    //delete affiliation first
                    var queryMapping = context.ResourceResourceGroups.Where(x => x.ResourceId == client.Id);
                    if (queryMapping.Count() > 0)
                    {
                        context.ResourceResourceGroups.DeleteAllOnSubmit(queryMapping);
                    }

                    context.Resources.DeleteOnSubmit(query.First());
                    context.SubmitChanges();
                }
            }
        }
Пример #21
0
        public void DeleteUserGroup(DT.UserGroup group)
        {
            RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
            var g = group; //linq does not like vars called group

            if (g.Id != null && g.Id != Guid.Empty)
            {
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    var query = from ug in context.UserGroupBases.OfType <DA.UserGroup>()
                                where ug.Id == g.Id
                                select ug;
                    if (query.Count() > 0)
                    {
                        context.UserGroupBases.DeleteOnSubmit(query.First());
                        context.SubmitChanges();
                    }
                    else
                    {
                        throw new Exception("UserGroup with id " + g.Id + " does not exist.");
                    }
                }
            }
        }
Пример #22
0
    private DT.User BuildUserDto(Guid userId) {
      DA.aspnet_User aspUser = null;
      DA.aspnet_Membership aspMembership = null;
      DA.User accessUser = null;

      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var userQuery = from u in context.aspnet_Users
                        where u.UserId == userId
                        select u;
        if (userQuery.Count() == 1) {
          aspUser = userQuery.First();
        }

        var memQuery = from u in context.aspnet_Memberships
                       where u.UserId == userId
                       select u;
        if (memQuery.Count() == 1) {
          aspMembership = memQuery.First();
        }
      }

      if (aspUser != null || aspMembership != null) {
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          var query = from u in context.UserGroupBases.OfType<DA.User>()
                      where u.Id == userId
                      select u;
          if (query.Count() == 1) {
            accessUser = query.First();
          } else {
            //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
            DA.User user = new DA.User();
            user.Id = userId;
            user.FullName = "Not set";
            context.UserGroupBases.InsertOnSubmit(user);
            context.SubmitChanges();
            accessUser = user;
          }
        }
      }

      if (aspUser == null || aspMembership == null || accessUser == null) {
        throw new Exception("User with id " + userId + " not found.");
      } else {
        return Convert.ToDto(accessUser, aspUser, aspMembership);
      }
    }
Пример #23
0
    private DT.LightweightUser BuildLightweightUserDto(Guid userId) {
      DA.aspnet_User aspUser = null;
      DA.aspnet_Membership aspMembership = null;
      DA.User accessUser = null;
      List<DA.aspnet_Role> roles = new List<DA.aspnet_Role>();
      List<DA.UserGroup> groups = new List<DA.UserGroup>();


      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var userQuery = from u in context.aspnet_Users
                        where u.UserId == userId
                        select u;

        var memQuery = from u in context.aspnet_Memberships
                       where u.UserId == userId
                       select u;
        if (memQuery.Count() == 1) {
          aspMembership = memQuery.First();
        }

        if (userQuery.Count() == 1) {
          aspUser = userQuery.First();
          roles = (from ur in context.aspnet_UsersInRoles
                   where ur.UserId == aspUser.UserId
                   join r in context.aspnet_Roles on ur.RoleId equals r.RoleId
                   select r).ToList();
        }
      }

      if (aspUser != null || aspMembership != null) {
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          var query = from u in context.UserGroupBases.OfType<DA.User>()
                      where u.Id == userId
                      select u;
          if (query.Count() == 1) {
            accessUser = query.First();
            groups = (from ug in context.UserGroupUserGroups
                      where ug.UserGroupId == accessUser.Id
                      join g in context.UserGroupBases.OfType<DA.UserGroup>() on ug.UserGroupUserGroupId equals g.Id
                      select g).ToList();
          } else {
            //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
            DA.User user = new DA.User();
            user.Id = userId;
            user.FullName = "Not set";
            context.UserGroupBases.InsertOnSubmit(user);
            context.SubmitChanges();
            accessUser = user;
          }
        }
      }

      if (aspUser == null || accessUser == null || aspMembership == null) {
        throw new Exception("User with id " + userId + " not found.");
      } else {
        return Convert.ToDto(accessUser, aspUser, aspMembership, roles, groups);
      }
    }
Пример #24
0
    public DT.User AddUser(DT.User user) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      DA.User accessUser;
      DA.aspnet_User aspUser;
      DA.aspnet_Membership aspMembership;
      bool userExistsInASP;

      Convert.ToEntity(user, out accessUser, out aspUser, out aspMembership, out userExistsInASP);

      if (userExistsInASP) {
        if (accessUser.Id == null || accessUser.Id == Guid.Empty) {
          accessUser.Id = aspMembership.UserId;
        }
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          context.UserGroupBases.InsertOnSubmit(accessUser);
          context.SubmitChanges();
        }
        MembershipUser membershipUser = Membership.GetUser((object)accessUser.Id);
        if (membershipUser != null) {
          membershipUser.Email = aspMembership.Email;
          membershipUser.IsApproved = aspMembership.IsApproved;
          membershipUser.Comment = aspMembership.Comment;
          Membership.UpdateUser(membershipUser);
        }
      } else {
        MembershipUser membershipUser = Membership.CreateUser(aspUser.UserName, aspUser.UserName, aspMembership.Email);
        membershipUser.IsApproved = aspMembership.IsApproved;
        membershipUser.Comment = aspMembership.Comment;
        Membership.UpdateUser(membershipUser);

        Guid userId = (Guid)membershipUser.ProviderUserKey;
        accessUser.Id = userId;

        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          context.UserGroupBases.InsertOnSubmit(accessUser);
          context.SubmitChanges();
        }
      }

      using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
        var newAspUser = context.aspnet_Users.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
        var newAspMembership = context.aspnet_Memberships.Where(x => x.UserId == accessUser.Id).FirstOrDefault();
        return Convert.ToDto(accessUser, newAspUser, newAspMembership);
      }
    }
Пример #25
0
    public void AddClient(DT.Client client) {
      string country = string.Empty;

      OperationContext opContext = OperationContext.Current;

      if (opContext != null) {
        MessageProperties properties = opContext.IncomingMessageProperties;
        RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
        string ipAdr = endpoint.Address;
        country = GeoIPLookupService.Instance.GetCountryName(ipAdr);
      }

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        DA.Client entity = Convert.ToEntity(client);

        if (country != string.Empty) {
          var query = from c in context.GetTable<DA.Country>()
                      where c.Name == country
                      select c;
          if (query.Count() > 0) {
            entity.CountryId = query.First().Id;
          }
        }

        if (entity.OperatingSystem != null) {
          string osversion = entity.OperatingSystem.Name;
          var query = from os in context.GetTable<DA.OperatingSystem>()
                      where os.Name == osversion
                      select os;
          if (query.Count() > 0) {
            entity.OperatingSystem = query.First();
          }
        }

        if (entity.ClientType != null) {
          string cType = entity.ClientType.Name;
          var query = from t in context.GetTable<DA.ClientType>()
                      where t.Name == cType
                      select t;
          if (query.Count() > 0) {
            entity.ClientType = query.First();
          }
        }

        context.Resources.InsertOnSubmit(entity);
        context.SubmitChanges();
      }
    }
Пример #26
0
    public void UpdateClientGroup(DT.ClientGroup clientGroup) {
      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        var query = from g in context.Resources.OfType<DA.ClientGroup>()
                    where g.Id == clientGroup.Id
                    select g;

        if (query.Count() > 0) {
          var entity = query.First();
          entity.Name = clientGroup.Name;
          entity.Description = clientGroup.Description;
          context.SubmitChanges();
        }
      }
    }
Пример #27
0
    public void AddResourceToGroup(DT.Resource resource, DT.ClientGroup group) {
      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        DA.ResourceResourceGroup rrg = new DA.ResourceResourceGroup() {
          ResourceId = resource.Id,
          ResourceGroupId = group.Id
        };

        context.ResourceResourceGroups.InsertOnSubmit(rrg);
        context.SubmitChanges();
      }
    }
Пример #28
0
 public void AddClientLog(DT.ClientLog log) {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     context.ClientLogs.InsertOnSubmit(Convert.ToEntity(log));
     context.SubmitChanges();
   }
 }
Пример #29
0
    public void UpdateUser(DT.User user) {
      if (user.Id != UserManager.CurrentUserId) {
        RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
      }

      MembershipUser membershipUser = Membership.GetUser((object)user.Id);
      if (membershipUser != null) {
        membershipUser.Email = user.Email;
        membershipUser.IsApproved = user.IsApproved;
        membershipUser.Comment = user.Comment;
        Membership.UpdateUser(membershipUser);
      }

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        var query = from u in context.UserGroupBases.OfType<DA.User>()
                    where u.Id == user.Id
                    select u;
        if (query.Count() > 0) {
          DA.User u = query.First();
          u.FullName = user.FullName;
          context.SubmitChanges();
        }
      }
    }
Пример #30
0
    public Guid AddUserGroup(DT.UserGroup group) {
      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        //because id is not automatically set because of user, we have to do it here manually for group   
        group.Id = Guid.NewGuid();

        context.UserGroupBases.InsertOnSubmit(Convert.ToEntity(group));
        context.SubmitChanges();
        return group.Id;
      }
    }
Пример #31
0
    public void DeleteClient(DT.Client client) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        //load client because we could get a detached object
        var query = from c in context.GetTable<DA.Resource>().OfType<DA.Client>()
                    where c.Id == client.Id
                    select c;
        if (query.Count() > 0) {

          //delete affiliation first
          var queryMapping = context.ResourceResourceGroups.Where(x => x.ResourceId == client.Id);
          if (queryMapping.Count() > 0) {
            context.ResourceResourceGroups.DeleteAllOnSubmit(queryMapping);
          }

          context.Resources.DeleteOnSubmit(query.First());
          context.SubmitChanges();
        }
      }
    }
Пример #32
0
    public void DeleteError(DT.ClientError error) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        var query = context.ClientErrors.Where(x => x.Id == error.Id);
        if (query.Count() > 0) {
          context.ClientErrors.DeleteOnSubmit(query.First());
          context.SubmitChanges();
        }
      }
    }
Пример #33
0
 public void ReportError(DT.ClientError error) {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     context.ClientErrors.InsertOnSubmit(Convert.ToEntity(error));
     context.SubmitChanges();
   }
 }
Пример #34
0
    public void DeleteClientLog(DT.ClientLog log) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        context.ClientLogs.DeleteOnSubmit(Convert.ToEntity(log));
        context.SubmitChanges();
      }
    }
Пример #35
0
        private DT.LightweightUser BuildLightweightUserDto(Guid userId)
        {
            DA.aspnet_User       aspUser       = null;
            DA.aspnet_Membership aspMembership = null;
            DA.User accessUser           = null;
            List <DA.aspnet_Role> roles  = new List <DA.aspnet_Role>();
            List <DA.UserGroup>   groups = new List <DA.UserGroup>();


            using (DA.ASPNETAuthenticationDataContext context = new DA.ASPNETAuthenticationDataContext()) {
                var userQuery = from u in context.aspnet_Users
                                where u.UserId == userId
                                select u;

                var memQuery = from u in context.aspnet_Memberships
                               where u.UserId == userId
                               select u;
                if (memQuery.Count() == 1)
                {
                    aspMembership = memQuery.First();
                }

                if (userQuery.Count() == 1)
                {
                    aspUser = userQuery.First();
                    roles   = (from ur in context.aspnet_UsersInRoles
                               where ur.UserId == aspUser.UserId
                               join r in context.aspnet_Roles on ur.RoleId equals r.RoleId
                               select r).ToList();
                }
            }

            if (aspUser != null || aspMembership != null)
            {
                using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                    var query = from u in context.UserGroupBases.OfType <DA.User>()
                                where u.Id == userId
                                select u;
                    if (query.Count() == 1)
                    {
                        accessUser = query.First();
                        groups     = (from ug in context.UserGroupUserGroups
                                      where ug.UserGroupId == accessUser.Id
                                      join g in context.UserGroupBases.OfType <DA.UserGroup>() on ug.UserGroupUserGroupId equals g.Id
                                      select g).ToList();
                    }
                    else
                    {
                        //if the user is not in the access db add it (this makes it easy to upgrade with an existing asp.net authentication db)
                        DA.User user = new DA.User();
                        user.Id       = userId;
                        user.FullName = "Not set";
                        context.UserGroupBases.InsertOnSubmit(user);
                        context.SubmitChanges();
                        accessUser = user;
                    }
                }
            }

            if (aspUser == null || accessUser == null || aspMembership == null)
            {
                throw new Exception("User with id " + userId + " not found.");
            }
            else
            {
                return(Convert.ToDto(accessUser, aspUser, aspMembership, roles, groups));
            }
        }
Пример #36
0
 public void AddUserGroupBaseToGroup(DT.UserGroupBase resource, DT.UserGroup group) {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     DA.UserGroupUserGroup ugug = new DA.UserGroupUserGroup();
     ugug.UserGroupId = resource.Id;
     ugug.UserGroupUserGroupId = group.Id;
     context.UserGroupUserGroups.InsertOnSubmit(ugug);
     context.SubmitChanges();
   }
 }
Пример #37
0
 public void RemoveResourceFromGroup(DT.Resource resource, DT.ClientGroup group) {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     var query = context.ResourceResourceGroups.Where(x => x.ResourceId == resource.Id && x.ResourceGroupId == group.Id);
     if (query.Count() > 0) {
       context.ResourceResourceGroups.DeleteOnSubmit(query.First());
       context.SubmitChanges();
     }
   }
 }
Пример #38
0
    public Guid AddClientGroup(DT.ClientGroup group) {
      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        if (group.Id == Guid.Empty)
          group.Id = Guid.NewGuid();

        var entity = Convert.ToEntity(group);
        context.Resources.InsertOnSubmit(entity);
        context.SubmitChanges();
        return entity.Id;
      }
    }
Пример #39
0
    public void DeleteClientGroup(DT.ClientGroup clientGroup) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        //load clientGroup because we could get a detached object
        var query = from c in context.GetTable<DA.Resource>().OfType<DA.ClientGroup>()
                    where c.Id == clientGroup.Id
                    select c;
        if (query.Count() > 0) {
          context.Resources.DeleteOnSubmit(query.First());
          context.SubmitChanges();
        }
      }
    }
Пример #40
0
    public void DeleteUserGroup(DT.UserGroup group) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);
      var g = group; //linq does not like vars called group

      if (g.Id != null && g.Id != Guid.Empty) {
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          var query = from ug in context.UserGroupBases.OfType<DA.UserGroup>()
                      where ug.Id == g.Id
                      select ug;
          if (query.Count() > 0) {
            context.UserGroupBases.DeleteOnSubmit(query.First());
            context.SubmitChanges();
          } else {
            throw new Exception("UserGroup with id " + g.Id + " does not exist.");
          }
        }
      }
    }
Пример #41
0
    public void DeleteUser(DT.User user) {
      RoleVerifier.AuthenticateForAllRoles(AccessServiceRoles.Administrator);

      if (user.Id != null && user.Id != Guid.Empty) {
        //delete asp.net user
        Membership.DeleteUser(user.UserName);
        using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
          var query = context.UserGroupBases.OfType<DA.User>().Where(x => x.Id == user.Id);
          if (query.Count() > 0) {

            //delete affiliation first
            var queryMapping = context.UserGroupUserGroups.Where(x => x.UserGroupId == user.Id);
            if (queryMapping.Count() > 0) {
              context.UserGroupUserGroups.DeleteAllOnSubmit(queryMapping);
            }

            //delete user from access db
            context.UserGroupBases.DeleteOnSubmit(query.First());
            context.SubmitChanges();
          }
        }
      }
    }
Пример #42
0
    public void RemoveUserGroupBaseFromGroup(DT.UserGroupBase resource, DT.UserGroup userGroup) {
      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        var query = from u in context.UserGroupUserGroups
                    where u.UserGroupId == resource.Id && u.UserGroupUserGroupId == userGroup.Id
                    select u;

        if (query.Count() == 1) {
          context.UserGroupUserGroups.DeleteOnSubmit(query.First());
          context.SubmitChanges();
        }
      }
    }
Пример #43
0
    public void UpdateClient(DT.Client client) {
      string country = string.Empty;

      OperationContext opContext = OperationContext.Current;

      if (opContext != null) {
        MessageProperties properties = opContext.IncomingMessageProperties;
        RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
        string ipAdr = endpoint.Address;
        country = GeoIPLookupService.Instance.GetCountryName(ipAdr);
      }

      using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
        var query = from c in context.Resources.OfType<DA.Client>()
                    where c.Id == client.Id
                    select c;

        if (query.Count() > 0) {
          var entity = query.First();

          if (country != string.Empty) {
            var countryQuery = from c in context.GetTable<DA.Country>()
                               where c.Name == country
                               select c;
            if (countryQuery.Count() > 0) {
              entity.CountryId = countryQuery.First().Id;
            }
          }

          entity.Name = client.Name;
          entity.Description = client.Description;
          entity.HeuristicLabVersion = client.HeuristicLabVersion;
          entity.Timestamp = DateTime.Now;

          context.SubmitChanges();
        }
      }
    }
Пример #44
0
 public void UpdateUserGroup(DT.UserGroup group) {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     DA.UserGroup entity = context.UserGroupBases.OfType<DA.UserGroup>().FirstOrDefault(x => x.Id == group.Id);
     Convert.ToEntity(group, entity);
     context.SubmitChanges();
   }
 }