public SpeciesObservationTableTypeViewModel GetUserDefinedTable(int id)
        {
            SpeciesObservationTableTypeViewModel table = new SpeciesObservationTableTypeViewModel();

            table.Id       = id;
            table.Title    = TableSettings.SpeciesObservationTable.UserDefinedTables[id].Title;
            table.FieldIds = TableSettings.SpeciesObservationTable.UserDefinedTables[id].FieldIds;

            return(table);
        }
        public void CreateNewSpeciesObservationTableType(SpeciesObservationTableTypeViewModel tableType)
        {
            UserDefinedTable userDefinedTable = new UserDefinedTable();

            userDefinedTable.Title    = tableType.Title;
            userDefinedTable.FieldIds = tableType.FieldIds;
            TableSettings.SpeciesObservationTable.UserDefinedTables.Add(userDefinedTable);
            TableSettings.SpeciesObservationTable.UseUserDefinedTableType = true;
            TableSettings.SpeciesObservationTable.SelectedTableId         = TableSettings.SpeciesObservationTable.UserDefinedTables.Count - 1;
        }
        /// <summary>
        /// Renders a dialog where the user can create or edit a custom table type.
        /// </summary>
        /// <param name="id">The table id if in edit mode.</param>
        /// <returns>A partial view that will be rendered.</returns>
        public PartialViewResult CustomSpeciesObservationTableDialog(int?id)
        {
            var viewManager = new SpeciesObservationFieldDescriptionViewManager(GetCurrentUser(), SessionHandler.MySettings);
            SpeciesObservationTableTypeViewModel tableType = null;

            if (id.HasValue)
            {
                tableType = viewManager.GetUserDefinedTable(id.Value);
            }

            return(PartialView(tableType));
        }
        /// <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));
        }
 public void EditUserDefinedTableType(int id, SpeciesObservationTableTypeViewModel table)
 {
     TableSettings.SpeciesObservationTable.UserDefinedTables[id].Title    = table.Title;
     TableSettings.SpeciesObservationTable.UserDefinedTables[id].FieldIds = table.FieldIds;
     TableSettings.SpeciesObservationTable.SelectedTableId = id;
 }