private ChartDataResponse GetChartDataInternal(string procName, IDictionary <string, object> procParams) { ChartDataResponse _response = null; try { Log.Info("GetChartData.Start"); Log.Info("parameter values" + JsonConvert.SerializeObject(new { procParams = procParams })); Command.CommandText = procName; Command.CommandType = CommandType.StoredProcedure; Command.Parameters.Clear(); if (procParams != null) { procParams.All(param => { Command.Parameters.AddWithValue("@" + param.Key, param.Value); return(true); }); } Connection.Open(); SqlDataReader reader = Command.ExecuteReader(); _response = new ChartDataResponse(); if (reader.HasRows) { _response.IsSuccess = true; while (reader.Read()) { _response.Data.Add(new ChartData() { Id = int.Parse(reader["Id"].ToString()), CategoryName = reader["CategoryName"] != DBNull.Value ? reader["CategoryName"].ToString() : string.Empty, SeriesName = reader["SeriesName"] != DBNull.Value ? reader["SeriesName"].ToString() : string.Empty, Value = decimal.Parse(reader["Value"].ToString()) }); } } else { _response.IsSuccess = false; _response.Message = "No data found"; } } catch (Exception ex) { Log.Error("GetChartData.Error:" + JsonConvert.SerializeObject(ex)); LogError(ex); throw; } finally { Connection.Close(); Log.Info("GetChartData.End"); } return(_response); }
public async Task <ActionResult> ChartData(ChartDataViewModel model) { ChartDataResponse resModel = null; using (var client = new HttpClient()) { client.BaseAddress = new Uri(ConfigurationManager.AppSettings["BaseUrl"]); client.DefaultRequestHeaders.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var json = JsonConvert.SerializeObject(model); var content = new StringContent(json, Encoding.UTF8, "application/json"); HttpResponseMessage Res = await client.PostAsync("api/CompanyDashboardAPI/ChartData", content); if (Res.IsSuccessStatusCode) { resModel = JsonConvert.DeserializeObject <ChartDataResponse>(Res.Content.ReadAsStringAsync().Result); } } return(Json(resModel, JsonRequestBehavior.AllowGet)); }