public IHttpActionResult GetWorkerBranch(string id) { var query = WebApiConfig.GraphClient.Cypher .Match("(w:Worker)-[e:WORKSIN]->(b:Branch)") .Where((Worker w) => w.id == id) .Return((w, b) => new { worker = w.As<Worker>(), branch = Return.As<string>("collect(b.number)") }); var queryData = query.Results.ToList(); var workerBranches = new List<WorkerBranch>(); foreach (var item in queryData) { WorkerBranch workerBranch = new WorkerBranch { workerNumber = item.worker.number, firstName = item.worker.firstName, lastName = item.worker.lastName, BranchNumber = item.branch }; workerBranches.Add(workerBranch); } UberDocument uberDocument = new UberDocument { Version = "1.0", Data = new List<Data>() }; if (workerBranches.Count > 0) { Data data = new Data(); data.Rel = new List<string>(); data.Rel.Add("self"); data.Rel.Add(Request.Headers.Host + "/api/worker/" + id + "/branch"); List<Data> result = new List<Data>(); foreach (WorkerBranch wb in workerBranches) { result.Add(GetBranchData(id, wb)); } data.Children = result; uberDocument.Data.Add(data); } string uber = JsonConvert.SerializeObject(uberDocument, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); return Ok(new { uber }); }
private Data GetBranchData(string id, WorkerBranch workerBranch) { Data data = new Data() { Name = "worker", Url = new System.Uri(Request.Headers.Host + "/api/worker/" + id + "/branch") }; data.Rel = new List<string>(); data.Rel.Add("item"); data.Rel.Add(Request.Headers.Host + "/api/rels/worker"); List<Data> children = new List<Data>(); children.Add(new Data { Name = "workerNumber", Label = "Worker Number", Value = workerBranch == null ? null : workerBranch.workerNumber }); children.Add(new Data { Name = "firstName", Label = "First Name", Value = workerBranch == null ? null : workerBranch.firstName }); children.Add(new Data { Name = "lastName", Label = "Last Name", Value = workerBranch == null ? null : workerBranch.lastName }); children.Add(new Data { Name = "branchNumber", Label = "Branch Number", Value = workerBranch == null ? null : workerBranch.BranchNumber }); data.Children = children; return data; }