Ejemplo n.º 1
0
 public PobladorPedido(
     IValidadorFecha validadorFecha,
     IValidadorTransporte validadorTransporte,
     ICalculador calculador,
     IObtenedorEscala obtenedorEscala,
     IObtenedorDuracion obtenedorDuracion,
     IObtenedorTipoEvento obtenedorTipoEvento)
 {
     _validadorFecha      = validadorFecha;
     _validadorTransporte = validadorTransporte;
     _calculador          = calculador;
     _obtenedorEscala     = obtenedorEscala;
     _obtenedorDuracion   = obtenedorDuracion;
     _obtenedorTipoEvento = obtenedorTipoEvento;
 }
Ejemplo n.º 2
0
 public void Eliminar(ICalculador hijo)
 {
     Hijos.Remove(hijo);
 }
Ejemplo n.º 3
0
 public void Agregar(ICalculador hijo)
 {
     Hijos.Add(hijo);
 }
Ejemplo n.º 4
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var propuestaToUpdate = await _context.Propuestas
                                    .Include(l => l.Puesto)
                                    .Include(a => a.AsiganrTecnico)
                                    .ThenInclude(a => a.Tecnico)
                                    .FirstOrDefaultAsync(m => m.ID == id);



            if (await TryUpdateModelAsync <Propuesta>(
                    propuestaToUpdate,
                    "Propuesta",
                    i => i.Title, i => i.FechaLimite,
                    i => i.CostoEstimado, i => i.EstimadoDeHora,
                    i => i.Puesto, i => i.Estado, i => i.DescripcionDeLaPropuesta, i => i.FechaLimite, i => i.NivelDeDificutad

                    ))



            {
                if (String.IsNullOrWhiteSpace(propuestaToUpdate.Puesto?.TrabajoName))
                {
                    propuestaToUpdate.Puesto = null;
                }



                Propuesta.NivelDeDificutad = IgnisData.NivelesDeDificultad[NiveleDif];


                /*Utilizamos el patron de polimorfismo ya que como las clases CalculadorBasico y CalculadorAvanzado inplmentan la inteface ICalcular realiza una operacion, la clase que se instancie cambara el precio hora.  */

                if (IgnisData.NivelesDeDificultad[NiveleDif] == IgnisData.NivelesDeDificultad[0])
                {
                    this.Calculcosto = new CalculadorBasico(Propuesta);
                }
                else if (IgnisData.NivelesDeDificultad[NiveleDif] == IgnisData.NivelesDeDificultad[1])
                {
                    this.Calculcosto = new CalculadorAvanzado(Propuesta);
                }

                /*Caprurams la excepción que puede causar si  no se recibe el valor correcto desde l form y redirigimos a la index  */
                try {
                    Propuesta.CostoEstimado = this.Calculcosto.Calcular();
                }
                catch {
                    return(NotFound());
                }


                _context.Attach(propuestaToUpdate).State = EntityState.Modified;


                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PropuestaExists(Propuesta.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            return(RedirectToPage("./Index"));
        }
Ejemplo n.º 5
0
 public Cuenta(ICalculador calculador)
 {
     this.calculador = calculador;
 }
Ejemplo n.º 6
0
 public void ClientCode(ICalculador leaf)
 {
     leaf.ImprimirSaldo();
 }