Exemple #1
0
        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));
        }