/// <summary>
        /// Returns all table fields that can be selected in a custom table.
        /// </summary>
        /// <returns>All table fields that can be selected in a custom table.</returns>
        public JsonNetResult GetAllSelectableTableFields()
        {
            JsonModel jsonModel;

            try
            {
                var viewManager = new SpeciesObservationFieldDescriptionViewManager(GetCurrentUser(), SessionHandler.MySettings);
                List <TableFieldDescriptionViewModel> tableFields = viewManager.GetAllSelectableTableFields();
                jsonModel = JsonModel.Create(tableFields);
            }
            catch (Exception ex)
            {
                jsonModel = JsonModel.CreateFailure(ex.Message);
            }

            return(new JsonNetResult(jsonModel));
        }