/// <summary>
        /// Método invocado cuando se hace click en el botón extra.
        /// </summary>
        /// <param name="sender">
        /// El objeto que genera el evento.
        /// </param>
        /// <param name="e">
        /// Un objeto que contiene información acerca del evento.
        /// </param>
        protected override void OnExtraSelected(object sender, EventArgs e)
        {
            DataModelEntity entity;

            // Asegurar que hay un modelo de datos seleccionado.
            if ((entity = (DataModelEntity)Selected) == null)
            {
                Util.ShowErrorDialog(UtnEmall.ServerManager.Properties.Resources.NoDataModelSelected);
                return;
            }

            // Preguntar por inserción de datos de prueba.
            bool insertTestData = Util.ShowConfirmDialog(
                Resources.QueryInsertTestDataOnInfrastructureService, Resources.Confirm);

            // Crear clase de construcción de servicio.
            ServiceBuilder builder = new ServiceBuilder(Control, entity);

            builder.BuildFinished += new EventHandler(ServiceBuilderBuildFinished);
            builder.InserTestData  = insertTestData;

            dataModelManager.BuildProgress.Visibility = Visibility.Visible;
            dataModelManager.Disable();
            // Ejecutar servicios de construcción asíncrona de modelo de datos.
            builder.Build();
        }
        private void ServiceBuilderBuildFinished(object sender, EventArgs e)
        {
            dataModelManager.BuildProgress.Visibility = Visibility.Hidden;
            ServiceBuilder builder = (ServiceBuilder)sender;

            if (builder.Succeed)
            {
                Util.ShowInformationDialog(Resources.InfrastructureServiceBuilt, Resources.Information);
            }
            else
            {
                Util.ShowErrorDialog(builder.Message);
            }

            Load();
            dataModelManager.Enable();
        }