// POST api/<controller> public async Task <HttpResponseMessage> Post(JObject objData) { dynamic jsonData = objData; JArray issueMetrics = jsonData.issueMetrics; var toAddIssueMetrics = issueMetrics.Select(im => im.ToObject <IssueMetric>()).ToList(); JArray reasonMetricArrays = jsonData.reasonMetrics; var toAddReasonMetrics = reasonMetricArrays.Select(rmArray => { return(rmArray.Select(rm => rm.ToObject <ReasonMetric>()).ToList()); }).ToList(); await IssuesService.UpdateItemAsync(toAddIssueMetrics.First().Issue); toAddIssueMetrics.ForEach(async issueMetric => { if (issueMetric.MetricValues.HasValue) { if (issueMetric.Id == 0) { await IssueMetricsService.InsertItemAsync(issueMetric); } else { await IssueMetricsService.UpdateItemAsync(issueMetric); } } }); toAddReasonMetrics.ForEach(async reasonMetricList => { await ReasonsService.UpdateItemAsync(reasonMetricList.First().Reason); }); toAddReasonMetrics.ForEach(reasonMetricList => { reasonMetricList.ForEach(async reasonMetric => { if (reasonMetric.ReasonMetricValues.HasValue) { if (reasonMetric.Id == 0) { await ReasonMetricsService.InsertItemAsync(reasonMetric); } else { await ReasonMetricsService.UpdateItemAsync(reasonMetric); } } }); }); return(ToJson(new { success = true })); }
public async Task <HttpResponseMessage> Get(int issueId, string reasonIds, DateTime weekStartDay) { var issueMetrics = await IssueMetricsService.GetItemsAsync(issueId, weekStartDay); if (string.IsNullOrEmpty(reasonIds)) { return(ToJson(new { issueMetrics = issueMetrics })); } var reasonMetrics = new List <ReasonMetric[]>(); var reasonIdList = reasonIds.Split(new char[] { '-' }).ToList(); reasonMetrics = await ReasonMetricsService.GetItemsAsync(reasonIdList, weekStartDay); var result = reasonMetrics.Select(rm => rm.ToJson()).ToList(); result.Add(issueMetrics.ToJson()); return(ToJson(result)); }