/// <summary>
        /// Add a setting
        /// </summary>
        /// <param name="setting"></param>
        /// <returns></returns>
        public int AddNew(SettingPost setting)
        {
            // first validate input
            // rules
            // no null values
            if (setting.Value == null)
            {
                return(-1);
            }

            // string not > 50 or empty
            if (setting.Value.Length > 50 || setting.Value == "")
            {
                return(-1);
            }

            // serviceId and settingNameId must exist in relevant databases
            if (!validateIds(setting.SettingNameID, setting.ServiceID))
            {
                return(-1);
            }

            // serviceId, settingNameId and value must not be duplicated
            if (GetBySettingServiceId(setting.SettingNameID, setting.ServiceID) != null || GetByValue(setting.Value) != null)
            {
                return(-1);
            }

            using (IDbConnection dbConnection = Connection)
            {
                // insert new record into database with params & return inserted id
                string sqlAddNew = "INSERT INTO Setting(SettingNameID, ServiceID, Value) "
                                   + "OUTPUT INSERTED.SettingId "
                                   + "VALUES(@SettingNameId, @ServiceId, @Value);";

                dbConnection.Open();

                try
                {
                    // insert record and return inserted id
                    return(dbConnection.Query <int>(sqlAddNew, setting).SingleOrDefault());
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
        }
        public IActionResult Post([FromBody] SettingPost setting)
        {
            if (setting == null)
            {
                return(new BadRequestResult());
            }

            int insertedId = settingRepository.AddNew(setting);

            if (insertedId > 0)
            {
                return(new OkObjectResult(insertedId));
            }
            else
            {
                return(new BadRequestResult());
            }
        }