Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created July 17, 2014 01:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/20c1dfd4684158035efe to your computer and use it in GitHub Desktop.
Save Fhernd/20c1dfd4684158035efe to your computer and use it in GitHub Desktop.
Ventana principal de la aplicación.
// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: Principal.cs
//
// Original en: http://goo.gl/AyDi19
//
// Propósito: Ventana principal de la aplicación.
//
============================================================*/
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using JuegosCelulares.Modelo;
namespace JuegosCelulares.GUI
{
public partial class Principal : Form
{
#region Controles
/// <summary>
/// Control para los puntos de extensión.
/// </summary>
private ControlExtension controlExtension;
/// <summary>
/// Control para las operaciones de venta y compra de juegos.
/// </summary>
private ControlJuegos controlJuegos;
/// <summary>
/// Componentes para las operaciones adicionales sobre la tienda.
/// </summary>
private ControlOpciones controlOpciones;
/// <summary>
/// Control para la visualización del título de la aplicación.
/// </summary>
private ControlTitulo controlTitulo;
#endregion
#region Campos
/// <summary>
/// Represenenta la empresa a administrar.
/// </summary>
private EmpresaJuegos empresaJuegos;
#endregion
#region Constructores
/// <summary>
/// Crea una nueva aplicación para la administración de la empresa.
/// </summary>
public Principal()
{
InitializeComponent();
this.Icon = Properties.Resources.smartphone;
empresaJuegos = new EmpresaJuegos();
ConfiguracionComponentes();
}
#endregion
#region Mëtodos
/// <summary>
/// Configura los componentes integrales de la ventana principal.
/// </summary>
private void ConfiguracionComponentes()
{
controlTitulo = new ControlTitulo();
// Conjunto de juegos para el control de juegos:
ArrayList nombresJuegos = new ArrayList();
nombresJuegos.Add(EmpresaJuegos.NOMBRE_JUEGO1);
nombresJuegos.Add(EmpresaJuegos.NOMBRE_JUEGO2);
nombresJuegos.Add(EmpresaJuegos.NOMBRE_JUEGO3);
nombresJuegos.Add(EmpresaJuegos.NOMBRE_JUEGO4);
controlJuegos = new ControlJuegos(this, nombresJuegos);
controlJuegos.Location = new Point(0, 150);
CambiarJuegoSeleccionado((string)nombresJuegos[0]);
controlOpciones = new ControlOpciones(this);
controlOpciones.Location = new Point(379, 150);
controlExtension = new ControlExtension(this);
controlExtension.Location = new Point(0, 450);
this.Controls.Add(controlTitulo);
this.Controls.Add(controlJuegos);
this.Controls.Add(controlOpciones);
this.Controls.Add(controlExtension);
}
/// <summary>
/// Muestra el nuevo juego seleccionado.
/// </summary>
/// <param name="nombreJuego">Nombre del juego seleccionado.</param>
public void CambiarJuegoSeleccionado(string nombreJuego)
{
controlJuegos.CambiarJuego(empresaJuegos.ObtenerJuego(nombreJuego));
}
/// <summary>
/// Calcula el descuento por cantidades de los juegos a comprar.
/// </summary>
/// <param name="cantidadJuego1">Cantidad del juego `Car Racer 2`.</param>
/// <param name="cantidadJuego2">Cantidad del juego `Air Attack`.</param>
/// <param name="cantidadJuego3">Cantidad del juego `Mini Golf 2`.</param>
/// <param name="cantidadJuego4">Cantidad del juego `Aztec Warrior`.</param>
public void CalcularDescuento(int cantidadJuego1, int cantidadJuego2, int cantidadJuego3, int cantidadJuego4)
{
MessageBox.Show(this, empresaJuegos.CalcularDescuento(cantidadJuego1, cantidadJuego2, cantidadJuego3, cantidadJuego4), "Descuento", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
/// Compra un juego para la venta en la empresa.
/// </summary>
/// <param name="nombreJuego">Nombre del juego a comprar.</param>
/// <param name="cantidad">Cantidad del juego a comprar.</param>
public void ComprarJuego(string nombreJuego, int cantidad)
{
empresaJuegos.ComprarJuego(nombreJuego, cantidad);
controlJuegos.CambiarJuego(empresaJuegos.ObtenerJuego(nombreJuego));
}
/// <summary>
/// Muestra el juego más vendido en la empresa.
/// </summary>
public void MostrarMasVendido()
{
MessageBox.Show(this, String.Format("El juego más vendido es: {0}", empresaJuegos.ObtenerJuegoMasVendido()), "Juego Más Vendido", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
/// Obtiene la cantidad de un determinado juego.
/// </summary>
/// <param name="nombreJuego">Nombre del juego del que se desea conocer su cantidad.</param>
/// <returns>Cantidad actual vendida del juego.</returns>
public int ObtenerCantidadJuego(string nombreJuego)
{
return empresaJuegos.ObtenerCantidadActual(nombreJuego);
}
/// <summary>
/// Determina qué juegos puede comprar de acuerdo a su cantidad y su precio.
/// </summary>
/// <param name="capacidad">Capacidad de memoria del dispositivo. En KB.</param>
/// <param name="precio">Presupuesto.</param>
/// <returns>Resumen de los juegos que puede comprar.</returns>
public void SeleccionarJuego(decimal presupuesto, int tamagnio)
{
MessageBox.Show(this, empresaJuegos.SeleccionarJuego(tamagnio, presupuesto), "Recomendación", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
public bool VenderJuego(string nombreJuego, int cantidad)
{
if (empresaJuegos.VenderJuego(nombreJuego, cantidad))
{
controlJuegos.CambiarJuego(empresaJuegos.ObtenerJuego(nombreJuego));
return true;
}
else
{
return false;
}
}
#endregion
#region Puntos de extensión
/// <summary>
/// Punto de extensión no. 1.
/// </summary>
public void PuntoExtension1()
{
string resultado = empresaJuegos.PuntoExtension1();
MessageBox.Show(this, resultado, "Punto Extensión No. 1", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
/// Punto de extensión no. 2.
/// </summary>
public void PuntoExtension2()
{
string resultado = empresaJuegos.PuntoExtension2();
MessageBox.Show(this, resultado, "Punto Extensión No. s", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment