public JsonResult Delete(string data)
        {
            Helper.CustomerWebApiRepository customerWebApiRepository = new Helper.CustomerWebApiRepository();
            CustomerViewModel customerViewModel = JsonConvert.DeserializeObject <CustomerViewModel>(data);


            Task <HttpResponseMessage> response = customerWebApiRepository.Delete(customerViewModel.CustomerID);

            response.Wait();

            if (response.Result.StatusCode != HttpStatusCode.OK)
            {
                return(Json(new
                {
                    status = 202,
                    //success = false,
                    message = "Delete method called unsuccessfully :("
                }));
            }
            else
            {
                return(Json(new
                {
                    status = 200,
                    success = true,
                    message = "Delete method called successfully :)"
                }));
            }
        }
        public JsonResult Create(string data)
        {
            //insert Create code
            //return Json(new
            //{
            //    data = new Contact(data[0].Name, data[0].Phone, data[0].Email, data[0].BirthDate, data[0].IsMarried, data[0].NoOfCar),
            //    success = true,
            //    message = "Create method called successfully"
            //});

            Helper.CustomerWebApiRepository customerWebApiRepository = new Helper.CustomerWebApiRepository();
            CustomerViewModel customerViewModel = JsonConvert.DeserializeObject <CustomerViewModel>(data);

            // server validation
            if (string.IsNullOrEmpty(customerViewModel.FirstName))
            {
                ModelState.AddModelError("FirstName", "First Name is required");
            }


            if (ModelState.IsValid)
            {
                Task <HttpResponseMessage> response = customerWebApiRepository.Post(customerViewModel);
                response.Wait();

                if (response.Result.StatusCode != HttpStatusCode.Created)
                {
                    return(Json(new
                    {
                        //success = false,
                        status = 202,
                        message = "Create method called unsuccessfully! :("
                    }));
                }
                else
                {
                    return(Json(new
                    {
                        status = 200,
                        success = true,
                        message = "Create method called successfully :) _ First Name is required. "
                    }));
                }
            }
            return(Json(new
            {
                //success = false,
                status = 202,
                message = "Create method called unsuccessfully :)  _ First Name is required. "
            }));
        }
        public JsonResult Update(string data)
        {
            //Console.WriteLine(data[0].BirthDate);
            //insert Update code
            Helper.CustomerWebApiRepository customerWebApiRepository = new Helper.CustomerWebApiRepository();
            CustomerViewModel customerViewModel = JsonConvert.DeserializeObject <CustomerViewModel>(data);

            if (string.IsNullOrEmpty(customerViewModel.FirstName))
            {
                ModelState.AddModelError("FirstName", "First Name is required");
            }

            if (ModelState.IsValid)
            {
                Task <HttpResponseMessage> response = customerWebApiRepository.Put(customerViewModel.CustomerID, customerViewModel);
                response.Wait();

                if (response.Result.StatusCode != HttpStatusCode.OK)
                {
                    return(Json(new
                    {
                        status = 202,
                        //success = false,
                        message = "Update method called unsuccessfully :( _ First Name is required. "
                    }));
                }
                else
                {
                    return(Json(new
                    {
                        status = 200,
                        success = true,
                        message = "Update method called successfully"
                    }));
                }
            }
            return(Json(new
            {
                status = 202,
                //success = false,
                message = "Update method called unsuccessfully :( _ First Name is required. "
            }));
        }
        public JsonResult Load()
        {
            Helper.CustomerWebApiRepository customerWebApiRepository = new Helper.CustomerWebApiRepository();


            Task <HttpResponseMessage> response = customerWebApiRepository.Get();

            response.Wait();

            string jsonContent = default;

            List <CustomerViewModel> customerViewModel = null;

            if (response.Result.IsSuccessStatusCode)
            {
                HttpContent requestContent = response.Result.Content;
                jsonContent = requestContent.ReadAsStringAsync().Result;

                customerViewModel = JsonConvert.DeserializeObject <List <CustomerViewModel> >(jsonContent);

                return(Json(new
                {
                    data = customerViewModel,
                    success = true,
                    message = "Loaded data is successful.",
                    status = 200,
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                data = customerViewModel,
                //success = false,
                message = "Loaded data was failed.",
                status = 202,
            }, JsonRequestBehavior.AllowGet));
        }