Esempio n. 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();
            }
        }
Esempio n. 2
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();
                }
            }
        }
Esempio n. 3
0
 public static DA.Client ToEntity(DT.Client source)
 {
     return(new DA.Client()
     {
         Id = source.Id,
         Description = source.Description,
         Name = source.Name,
         ClientConfiguration = ToEntity(source.ClientConfiguration),
         HeuristicLabVersion = source.HeuristicLabVersion,
         Country = ToEntity(source.Country),
         OperatingSystem = ToEntity(source.OperatingSystem),
         MemorySize = source.MemorySize,
         Timestamp = source.Timestamp,
         NumberOfCores = source.NumberOfCores,
         ProcessorType = source.ProcessorType,
         PerformanceValue = source.PerformanceValue,
         ClientType = ToEntity(source.ClientType)
     });
 }
Esempio n. 4
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();
                }
            }
        }