/// <summary>
        /// Creates a new user defined table type.
        /// </summary>
        /// <param name="data">Table data in JSON format.</param>
        /// <returns>Success if creation goes well; otherwise Error message.</returns>
        public JsonNetResult CreateNewCustomSpeciesObservationTableTypeByAjax(string data)
        {
            JsonModel jsonModel = JsonModel.CreateSuccess("");

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

            return(new JsonNetResult(jsonModel));
        }