// GET: /Maintenance/



        #region UpdateDepartmentsTable

        /*
         * @author          :   AC <*****@*****.**>
         * @date            :   JAN 4, 2016 5:16 PM
         * @description     :   get all departments from AD and insert it into a local table
         */
        public JsonResult UpdateDepartmentsTable()
        {
            try
            {
                //prepare client handlers for endpoint
                HttpClientHandler hndlr = new HttpClientHandler();
                hndlr.UseDefaultCredentials = true;
                HttpClient client = new HttpClient(hndlr);
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                //specify the endpoint URL
                var url = ConfigurationManager.AppSettings[ConfigurationManager.AppSettings["env"].ToString() + "_api_base_url"].ToString() + "departments/ShowAll?json=true";
                HttpResponseMessage res = client.GetAsync(url).Result;

                //check if the enpoint is online
                if (!res.IsSuccessStatusCode)
                {
                    throw new Exception(res.IsSuccessStatusCode.ToString());
                }

                //get string result from endpoint
                string strJson = res.Content.ReadAsStringAsync().Result;

                //convert the string from endpoint into json object
                JavaScriptSerializer j = new JavaScriptSerializer();
                var       dx           = j.Deserialize <Dictionary <string, object> >(strJson);
                ArrayList msg          = (ArrayList)dx["message"];

                DateTime      dateadded = DateTime.Now;
                List <string> d         = new List <string>();

                //loop through all the department names returned by the endpoint
                foreach (string s in msg)
                {
                    DepartmentObject dept_obj = new DepartmentObject();
                    dept_obj.Code        = string.Empty;
                    dept_obj.Name        = s;
                    dept_obj.Description = s;
                    dept_obj.IsActive    = true;
                    dept_obj.Source      = "AD";
                    dept_obj.AddedBy     = "0";
                    dept_obj.DateAdded   = dateadded;

                    //add it to the database
                    dept_mod.UpSertDepartment(dept_obj);

                    d.Add(s);
                }

                response.Add("success", true);
                response.Add("error", false);
                response.Add("message", d);
            }
            catch (Exception ex)
            {
                response.Add("success", false);
                response.Add("error", true);
                response.Add("message", ex.ToString());
            }
            return(Json(response, JsonRequestBehavior.AllowGet));
        }
        /*
         * @author          :   AC <*****@*****.**>
         * @date            :   JAN 5, 2016 11:10AM
         * @description     :   update and/or insert to tbldepartments
         */
        public bool UpSertDepartment(DepartmentObject DeptObj)
        {
            SqlParameter[] params_ = new SqlParameter[] {
                new SqlParameter("@Code", DeptObj.Code),
                new SqlParameter("@Name", DeptObj.Name),
                new SqlParameter("@Description", DeptObj.Description),
                new SqlParameter("@Source", DeptObj.Source),
                new SqlParameter("@IsActive", DeptObj.IsActive),
                new SqlParameter("@AddedBy", DeptObj.AddedBy),
                new SqlParameter("@DateAdded", DeptObj.DateAdded)
            };

            return(Library.ConnectionString.returnCon.executeQuery("spUpSertDepartments", params_, CommandType.StoredProcedure));
        }