public async Task <List <Branch> > GetAll() { List <Branch> lstBranch = null; var uri = new Uri(UrlHelper.GetUrl() + "mdbranch"); try { var response = await _client.GetAsync(uri); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsStringAsync(); var results = Unwrapper.Unwrap <List <Branch> >(content); lstBranch = results; } else { throw new Exception("Error: Gagal ambil data Branch"); } return(lstBranch); } catch (Exception ex) { throw new Exception($"{ex.Message}"); } }
public async Task <SampleResponse> GetDataAsync <SampleResponse>(string endPoint) { var httpResponse = await _httpClient.GetAsync(endPoint); if (!httpResponse.IsSuccessStatusCode) { _logger.Log(LogLevel.Warning, $"[{httpResponse.StatusCode}] An error occured while requesting external api."); return(default(SampleResponse)); } var jsonString = await httpResponse.Content.ReadAsStringAsync(); var data = Unwrapper.Unwrap <SampleResponse>(jsonString); return(data); }
public async Task <SampleResponse> PostDataAsync <SampleResponse, SampleRequest>(string endPoint, SampleRequest dto) { var content = new StringContent(JsonSerializer.Serialize(dto), Encoding.UTF8, HttpContentMediaTypes.JSON); var httpResponse = await _httpClient.PostAsync(endPoint, content); if (!httpResponse.IsSuccessStatusCode) { _logger.Log(LogLevel.Warning, $"[{httpResponse.StatusCode}] An error occured while requesting external api."); return(default(SampleResponse)); } var jsonString = await httpResponse.Content.ReadAsStringAsync(); var data = Unwrapper.Unwrap <SampleResponse>(jsonString); return(data); }
public static void TestUnwrappedMeshAreas() { var mesh = Unwrapper.MakeUnwrappedMeshBFS(MeshUnwrapper.Common.Icosahedron.Points, MeshUnwrapper.Common.Icosahedron.Triangles); HashSet <int> usedTris = new HashSet <int>(); int N = 0; foreach (var tri in mesh.Triangles) { var p0 = mesh.Vertices[tri.p0]; var p1 = mesh.Vertices[tri.p1]; var p2 = mesh.Vertices[tri.p2]; var e0 = p1 - p0; var e1 = p2 - p0; var A0 = Vec3HighPrecision.Cross(e0, e1).Length / 2.0; bool match = false; for (int i = 0; i < MeshUnwrapper.Common.Icosahedron.Triangles.Length; i++) { if (usedTris.Contains(i)) { continue; } var tri0 = MeshUnwrapper.Common.Icosahedron.Triangles[i]; var q0 = MeshUnwrapper.Common.Icosahedron.Points[tri0.p0]; var q1 = MeshUnwrapper.Common.Icosahedron.Points[tri0.p1]; var q2 = MeshUnwrapper.Common.Icosahedron.Points[tri0.p2]; var f0 = q1 - q0; var f1 = q2 - q0; var A1 = Vec3HighPrecision.Cross(f0, f1).Length / 2.0; var err = Math.Abs(A0 - A1); if (err < 0.001) { usedTris.Add(i); match = true; break; } } Assert.True(match, "Area of triangles is distorted, N=" + N + ", A0=" + A0); N++; } }
public static void TestUnwrappedMeshInXZPlane() { var mesh = Unwrapper.MakeUnwrappedMeshBFS(MeshUnwrapper.Common.Icosahedron.Points, MeshUnwrapper.Common.Icosahedron.Triangles); Assert.AreEqual(MeshUnwrapper.Common.Icosahedron.Triangles.Length, mesh.Triangles.Count, "Triangle counts don't match!"); int N = 0; foreach (var tri in mesh.Triangles) { var p0 = mesh.Vertices[tri.p0]; var p1 = mesh.Vertices[tri.p1]; var p2 = mesh.Vertices[tri.p2]; var e0 = p1 - p0; var e1 = p2 - p0; var n = Vec3HighPrecision.Cross(e0, e1).Normalized; Assert.That(n.Y, Is.EqualTo(1.0).Within(0.01), string.Format("Normal {0} of tri #{1} ({2}-{3}-{4}) not facing up.", n, N, p0, p1, p2)); N++; } }