Ejemplo n.º 1
0
        public void saveRecord()
        {
            DataValidation.Result dataValidationResult = new DataValidation.Result();

            // 1. Validate the data
            foreach (TableHandler tableHandler in listTableHandler)
            {
                if (!tableHandler.getTableIO().isRecordOptional())
                {
                    dataValidationResult = tableHandler.getTableIO().recordValid();
                    if (dataValidationResult != null
                        && !dataValidationResult.isValid())
                    {
                        dataValidationResult.showMessage();
                        break;
                    }
                }
            }

            if (dataValidationResult == null || dataValidationResult.isValid())
            {
                // 2. Retrieve the id from the primary table
                String primaryId = null;
                if (listTableHandler.Count != 0)
                {
                    TableHandler primaryTableHandler = listTableHandler[0];
                    if (true /*|| primaryTableHandler.getTableIO().getState().Equals(TableIO.State.Add)*/ )
                    {
                        Control idControl = primaryTableHandler.getTableIO().findControl(Net7.Table_item_base._id);
                        if (idControl != null)
                        {
                            primaryId = idControl.Text;
                        }
                    }
                }
                else
                {
                    // Data is invalid, issue a halt to this process
                }

                // 3. Save each table
                // TODO: This generates multiple calls to TableIO.enableFiels()
                foreach (TableHandler tableHandler in listTableHandler)
                {
                    if (!tableHandler.getTableIO().isRecordOptional())
                    {
                        if (!tableHandler.getTableIO().recordSave(primaryId))
                        {
                            return;
                        }
                    }
                }

                // 4. Set the proper state
                foreach (TableHandler tableHandler in listTableHandler)
                {
                    tableHandler.getTableIO().setState(TableIO.State.View);
                }
            }
        }