/// <summary> /// Get a list of values for a given property of all particles /// Useful for histograms /// </summary> public List <double> GetParticlePropertyList(ParticleFunction func) { var response = new List <double>(); foreach (var part in Particles) { response.Add(func(part)); } return(response); }
public async Task <ParticleFunctionReturn> CallParticleFunction(ParticleFunction pFunc) { ParticleFunctionReturn pfRet = new ParticleFunctionReturn(); try { Uri uri = new Uri(string.Format(baseUrl, pFunc.DeviceId, pFunc.FuncName)); Uri pfuri = new Uri(string.Format(baseUrl, pFunc.DeviceId, pFunc.FuncName)); FormUrlEncodedContent postData = new FormUrlEncodedContent( new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("arg", pFunc.Args) } ); var requestMessage = new HttpRequestMessage { Method = HttpMethod.Post, Content = postData, RequestUri = pfuri }; requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", pFunc.Token); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));//ACCEPT header HttpResponseMessage response = await client.SendAsync(requestMessage); string content = response.Content.ReadAsStringAsync().Result; if (response.IsSuccessStatusCode) { Analytics.TrackEvent("response.Ok"); pfRet = JsonConvert.DeserializeObject <ParticleFunctionReturn>(content); pfRet.Error = false; } else { Analytics.TrackEvent("response.Error"); pfRet.Error = true; //var ErrResult = response.Content.ReadAsStringAsync().Result; if (!String.IsNullOrEmpty(content)) { ParticleFunctionError pfErr = JsonConvert.DeserializeObject <ParticleFunctionError>(content); if (String.IsNullOrEmpty(pfErr.info)) { pfRet.ErrorDetail = pfErr.error; } else { pfRet.ErrorDetail = pfErr.error + " : " + pfErr.info; } } } } catch (Exception ex) { Crashes.TrackError(ex); } return(pfRet); }