/// <summary>
        /// Updates a user defined table.
        /// </summary>
        /// <param name="id">The user defined table id.</param>
        /// <param name="data">The table data in JSON format.</param>
        /// <returns>Success if update goes well; otherwise Error message.</returns>
        public JsonNetResult EditUserDefinedTableTypeByAjax(int id, string data)
        {
            JsonModel jsonModel = JsonModel.CreateSuccess("");

            try
            {
                SpeciesObservationTableTypeViewModel tableType = JsonConvert.DeserializeObject <SpeciesObservationTableTypeViewModel>(data);
                var viewManager = new SpeciesObservationFieldDescriptionViewManager(GetCurrentUser(), SessionHandler.MySettings);
                viewManager.EditUserDefinedTableType(id, tableType);
                SessionHandler.UserMessages.Add(new UserMessage(Resources.Resource.PresentationTableEditedUserDefinedTable));
            }
            catch (Exception ex)
            {
                jsonModel = JsonModel.CreateFailure(ex.Message);
            }

            return(new JsonNetResult(jsonModel));
        }