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(); } }
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(); } } }
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) }); }
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(); } } }