public IActionResult Put(string id, [FromBody] object content)
        {
            SqlClient    sqlClient    = new SqlClient();
            SearchClient searchClient = new SearchClient(
                Environment.GetEnvironmentVariable(ServiceConfiguration.AlgoliaAppId),
                Environment.GetEnvironmentVariable(ServiceConfiguration.AdminKey));
            SearchIndex index = searchClient.InitIndex(ServiceConfiguration.SearchIndex);

            if (Get(id) == null)
            {
                return(NotFound());
            }

            CompetitiveEvent updatedEvent = JsonConvert.DeserializeObject <CompetitiveEvent>(content.ToString());
            CompetitiveEvent currentEvent = sqlClient.GetCompetitiveEvent(
                SqlCommands.GetCompetitiveEvent,
                id);

            currentEvent = SqlOperations.UpdateCompetitiveEvent(currentEvent, updatedEvent);

            sqlClient.CreateOrInsert(
                SqlCommands.UpdateCompetitiveEvent,
                CompetitiveEvent.ToDictionary(currentEvent));
            index.PartialUpdateObject(
                currentEvent,
                createIfNotExists: false);

            return(Ok());
        }
        public IActionResult Post([FromBody] object content)
        {
            SqlClient    sqlClient    = new SqlClient();
            SearchClient searchClient = new SearchClient(
                Environment.GetEnvironmentVariable(ServiceConfiguration.AlgoliaAppId),
                Environment.GetEnvironmentVariable(ServiceConfiguration.AdminKey));
            SearchIndex index = searchClient.InitIndex(ServiceConfiguration.SearchIndex);

            CompetitiveEvent competitiveEvent = JsonConvert.DeserializeObject <CompetitiveEvent>(content.ToString());

            competitiveEvent.CreatedTimestamp = competitiveEvent.ModifiedTimestamp = DateTime.Now;
            competitiveEvent.Id = competitiveEvent.ObjectID = Guid.NewGuid().ToString();

            if (Get(competitiveEvent.Id) != null)
            {
                competitiveEvent.Id = competitiveEvent.ObjectID = Guid.NewGuid().ToString();
            }
            competitiveEvent.Version = 1;

            sqlClient.CreateOrInsert(
                SqlCommands.InsertCompetitiveEvent,
                CompetitiveEvent.ToDictionary(competitiveEvent));
            index.SaveObject(
                competitiveEvent,
                autoGenerateObjectId: false);

            return(Ok());
        }