public ActionResult Edit(int id, Employee collection)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri(m_ApiUrl + "/api/");

                        string        l_Json          = JsonConvert.SerializeObject(collection);
                        StringContent l_StringContent = new StringContent(l_Json, UnicodeEncoding.UTF8, "application/json");

                        //Called Member default GET All records
                        //GetAsync to send a GET request
                        // PutAsync to send a PUT request
                        var responseTask = client.PutAsync("Employee/" + id, l_StringContent);
                        responseTask.Wait();

                        //To store result of web api response.
                        var result = responseTask.Result;

                        //If success received
                        if (!result.IsSuccessStatusCode)
                        {
                            //Error response received
                            ModelState.AddModelError(string.Empty, "Server error try after some time.");

                            LayoutMessageHelper.SetMessage("Error trying to edit employee. Try again later.", LayoutMessageType.Alert);

                            return(View(collection));
                        }

                        LayoutMessageHelper.SetMessage("Employee saved successfully", LayoutMessageType.Success);
                    }
                }
                else
                {
                    return(View(collection));
                }

                return(RedirectToAction("Index"));
            }
            catch (Exception Error)
            {
                LayoutMessageHelper.SetMessage(Error.Message, LayoutMessageType.Error);

                return(View(collection));
            }
        }
        public ActionResult Create(Employee collection)
        {
            try
            {
                IEnumerable <Employee> employees = null;
                if (ModelState.IsValid)
                {
                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri(m_ApiUrl + "/api/");

                        string        l_Json          = JsonConvert.SerializeObject(collection);
                        StringContent l_StringContent = new StringContent(l_Json, UnicodeEncoding.UTF8, "application/json");

                        var responseTask = client.PostAsync("Employee", l_StringContent);
                        responseTask.Wait();

                        //To store result of web api response.
                        var result = responseTask.Result;

                        //If success received
                        if (!result.IsSuccessStatusCode)
                        {
                            //Error response received
                            employees = Enumerable.Empty <EmployeeManager.Models.Employee>();
                            ModelState.AddModelError(string.Empty, "Server error try after some time.");

                            LayoutMessageHelper.SetMessage("Server error", LayoutMessageType.Error);

                            return(View(collection));
                        }

                        LayoutMessageHelper.SetMessage("Employee saved successfully", LayoutMessageType.Success);
                    }
                }
                else
                {
                    return(View(collection));
                }

                return(RedirectToAction("Index"));
            }
            catch (Exception Error)
            {
                LayoutMessageHelper.SetMessage(Error.Message, LayoutMessageType.Error);

                return(View(collection));
            }
        }
        // GET: Employees/Delete/5
        public ActionResult Delete(int id)
        {
            try
            {
                Employee l_employee = null;

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(m_ApiUrl + "/api/");

                    var responseTask = client.GetAsync("Employee/" + id);
                    responseTask.Wait();

                    //To store result of web api response.
                    var result = responseTask.Result;

                    //If success received
                    if (result.IsSuccessStatusCode)
                    {
                        var readTask = result.Content.ReadAsAsync <Employee>();
                        readTask.Wait();

                        l_employee = readTask.Result;
                    }
                    else
                    {
                        //Error response received
                        l_employee = new Employee();
                        ModelState.AddModelError(string.Empty, "Server error try after some time.");
                    }

                    LayoutMessageHelper.SetMessage($"Do you confirm the exclusion of { l_employee.name }?", LayoutMessageType.Alert);
                }

                return(View(l_employee));
            }
            catch (Exception Error)
            {
                LayoutMessageHelper.SetMessage(Error.Message, LayoutMessageType.Error);

                return(View());
            }
        }
        // GET: Employees
        public ActionResult Index(string search = "", int size = 20, int page = 0)
        {
            try
            {
                PagedData <EmployeeManager.Models.Employee> employees = null;

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(m_ApiUrl + "/api/");

                    //Called Member default GET All records
                    //GetAsync to send a GET request
                    // PutAsync to send a PUT request

                    string l_qs = string.Empty;

                    if (!string.IsNullOrEmpty(search))
                    {
                        l_qs += (string.IsNullOrEmpty(l_qs) ? "?" : "&") + "search=" + search;
                    }

                    if (size != 20)
                    {
                        l_qs += (string.IsNullOrEmpty(l_qs) ? "?" : "&") + "size=" + size;
                    }

                    if (page != 0)
                    {
                        l_qs += (string.IsNullOrEmpty(l_qs) ? "?" : "&") + "page=" + page;
                    }

                    var responseTask = client.GetAsync("Employee/Paged" + l_qs);
                    responseTask.Wait();

                    //To store result of web api response.
                    var result = responseTask.Result;

                    //If success received
                    if (result.IsSuccessStatusCode)
                    {
                        var readTask = result.Content.ReadAsAsync <PagedData <Employee> >();
                        readTask.Wait();

                        employees = readTask.Result;
                    }
                    else
                    {
                        //Error response received
                        employees = new PagedData <Employee>();
                        ModelState.AddModelError(string.Empty, "Server error try after some time.");

                        LayoutMessageHelper.SetMessage("Error trying to get employees. Try again later.", LayoutMessageType.Alert);
                    }
                }

                return(View(employees));
            }
            catch (Exception Error)
            {
                LayoutMessageHelper.SetMessage(Error.Message, LayoutMessageType.Error);

                return(View());
            }
        }