public ActionResult GetMonthApplications(int year, int month, int service_id)
        {
            ChartParams parameters = new ChartParams
            {
                Year      = year,
                Month     = month,
                ServiceId = service_id
            };

            ServiceApplicationsData data = null;

            using (HttpClient client = WebApiClient.InitializeClient(Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/"))
            {
                HttpResponseMessage message = client.PostAsJsonAsync("/api/Application/ServiceStats", parameters).Result;

                if (message.IsSuccessStatusCode)
                {
                    data = message.Content.ReadAsAsync <ServiceApplicationsData>().Result;
                }
            }

            if (data != null)
            {
                return(PartialView("_ServiceStats", data));
            }

            return(null);
        }
        public HttpResponseMessage ServiceStats([FromBody] ChartParams parameters)
        {
            using (SqlConnection connection = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DBCS"].ConnectionString))
            {
                SqlDataAdapter da = new SqlDataAdapter("spGetServiceApplicationsData", connection);

                da.SelectCommand.CommandType = CommandType.StoredProcedure;

                da.SelectCommand.Parameters.AddWithValue("@ServiceId", parameters.ServiceId);
                da.SelectCommand.Parameters.AddWithValue("@TimeLimit", new DateTime(parameters.Year, parameters.Month, 1));

                DataSet set = new DataSet();

                try
                {
                    ServiceApplicationsData data = new ServiceApplicationsData();

                    data.Consultants = new Dictionary <string, string>();

                    da.Fill(set);

                    foreach (DataRow row in set.Tables[0].Rows)
                    {
                        data.Consultants.Add(row["Name"].ToString(), row["Email"].ToString());
                        data.AdvancePendingApplications = Convert.ToInt32(row["AdvancePendingCount"].ToString());
                        data.MainPendingApplications    = Convert.ToInt32(row["MainPendingCount"].ToString());
                        data.NoBillApplications         = Convert.ToInt32(row["NoBillCount"].ToString());
                        data.MainPaidApplications       = Convert.ToInt32(row["MainPaidCount"].ToString());
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK, data));
                }
                catch (Exception ex)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
                }
            }
        }