// TODO: impliment security
        // API adding a customer
        public bool AddCustomer(string name)
        {
            bool returnSuccessfulInsertFlag = true;

            if (name == "")
            {
                returnSuccessfulInsertFlag = false;
            }

            returnSuccessfulInsertFlag = new Utils.UtilClass().AddRecordToJsonFile(name);

            return(returnSuccessfulInsertFlag);
        }
        // TODO: impliment security
        // API adding a customer
        public bool UpdateCustomer(int id, string name)
        {
            bool returnSuccessfulInsertFlag = true;

            if (name == "")
            {
                returnSuccessfulInsertFlag = false;
            }

            returnSuccessfulInsertFlag = new Utils.UtilClass().UpdateRecordToJsonFile(id, name);

            return(returnSuccessfulInsertFlag);
        }
        // TODO: impliment security
        public string GetCustomerById(int?id)
        {
            if (!id.HasValue)
            {
                return("");
            }

            // API retrieving a customer name by Id
            JObject jsonData = new Utils.UtilClass().ReadJsonFile();

            IEnumerable <JToken> customerName = jsonData.SelectToken("$.customers[?(@.id == " + id + ")].name");

            return(customerName != null?string.Format("Id: {0} - Name: {1}", id, customerName) : "");
        }
        // TODO: impliment security
        public string GetCustomerIdByName(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return("");
            }

            // API retrieving a customer Id by name
            JObject jsonData = new Utils.UtilClass().ReadJsonFile();

            IEnumerable <JToken> customerId = jsonData.SelectToken("$.customers[?(@.name == '" + name + "')].id");

            return(customerId != null?string.Format("Id: {0} - Name: {1}", customerId, name) : "Not Found");
        }
        // TODO: impliment security
        public List <Customer> GetAllCustomers()
        {
            // API listing all customers
            // Return in Json List<Customer> format
            // string returnStringList = "";

            JObject jsonData     = new Utils.UtilClass().ReadJsonFile();
            JArray  allCustomers = (JArray)jsonData["customers"];

            // Return in string format
            //foreach (JToken customer in allCustomers)
            //{
            //    returnStringList += string.Format("Id: {0} - Name: {1} \n", customer["id"], customer["name"]);
            //}
            //return returnStringList.Substring(0, returnStringList.Length - 1); // removing last new line

            return(allCustomers.ToObject <List <Customer> >());
        }