예제 #1
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();
            }
        }
예제 #2
0
 public IEnumerable<DT.Client> GetAllClients() {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     var query = from c in context.GetTable<DA.Resource>().OfType<DA.Client>()
                 select Convert.ToDto(c);
     return query.ToList();
   }
 }
예제 #3
0
 public IEnumerable<DT.Client> GetClients(IEnumerable<Guid> ids) {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     var query = from c in context.GetTable<DA.Resource>().OfType<DA.Client>()
                 where ids.Contains(c.Id)
                 select Convert.ToDto(c);
     return query.ToList();
   }
 }
예제 #4
0
        public IEnumerable <DT.Client> GetAllClients()
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from c in context.GetTable <DA.Resource>().OfType <DA.Client>()
                            select Convert.ToDto(c);

                return(query.ToList());
            }
        }
예제 #5
0
        public IEnumerable <DT.ClientGroupMapping> GetClientGroupMapping()
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from c in context.GetTable <DA.ResourceResourceGroup>()
                            select Convert.ToDto(c);

                return(query.ToList());
            }
        }
예제 #6
0
        public IEnumerable <DT.Client> GetClients(IEnumerable <Guid> ids)
        {
            using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
                var query = from c in context.GetTable <DA.Resource>().OfType <DA.Client>()
                            where ids.Contains(c.Id)
                            select Convert.ToDto(c);

                return(query.ToList());
            }
        }
예제 #7
0
 public DT.Client GetClient(Guid id) {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     var query = from c in context.GetTable<DA.Resource>().OfType<DA.Client>()
                 where c.Id == id
                 select c;
     if (query.Count() > 0) {
       return Convert.ToDto(query.FirstOrDefault());
     } else {
       return null;
     }
   }
 }
예제 #8
0
 public DT.Client GetClient(Guid id)
 {
     using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
         var query = from c in context.GetTable <DA.Resource>().OfType <DA.Client>()
                     where c.Id == id
                     select c;
         if (query.Count() > 0)
         {
             return(Convert.ToDto(query.FirstOrDefault()));
         }
         else
         {
             return(null);
         }
     }
 }
예제 #9
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();
                }
            }
        }
예제 #10
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();
                }
            }
        }
예제 #11
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();
                }
            }
        }
예제 #12
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();
      }
    }
예제 #13
0
 public IEnumerable<DT.ClientGroupMapping> GetClientGroupMapping() {
   using (DA.AccessServiceDataContext context = new DA.AccessServiceDataContext()) {
     var query = from c in context.GetTable<DA.ResourceResourceGroup>()
                 select Convert.ToDto(c);
     return query.ToList();
   }
 }
예제 #14
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();
        }
      }
    }
예제 #15
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();
        }
      }
    }
예제 #16
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();
        }
      }
    }