예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="observer"></param>
        /// <param name="WidthFinal"></param>
        //public void Subscribe(IObserverWidth observer, double WidthFinal, int cortes)
        //{
        //    observer.WidthOperacion = WidthFinal;
        //    observer.CortesOPasadas = cortes;

        //    //Total de material a remover.
        //    observer.MatRemoverWidth = observer.MatRemoverWidth * cortes;

        //    Observers.Add(observer);
        //}

        //public void Subcribe(IObserverWidth observer, double WidthFinal, PasoNISSEI paso)
        //{
        //    observer.WidthOperacion = WidthFinal;
        //    observer.CortesOPasadas = paso.Cortes.Length;

        //    observer.PasoNISSEI = paso;

        //    double totalMatRemover = 0.0;
        //    for (int i = 0; i < paso.Cortes.Length; i++)
        //    {
        //        totalMatRemover += paso.Cortes[i].MatRemover;
        //    }

        //    Observers.Add(observer);
        //}

        /// <summary>
        ///
        /// </summary>
        /// <param name="observer"></param>
        /// <param name="index"></param>
        public void Subscribe(IObserverWidth observer, int index)
        {
            Observers.Insert(index, observer);
        }
예제 #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="observer"></param>
 /// <param name="WidthFinal"></param>
 public void Subscribe(IObserverWidth observer, double WidthFinal)
 {
     observer.WidthOperacion = WidthFinal;
     Observers.Add(observer);
 }
예제 #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="observer"></param>
 public void Unsubscribe(IObserverWidth observer)
 {
     Observers.Remove(observer);
 }
예제 #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="observer"></param>
 public void Subscribe(IObserverWidth observer)
 {
     Observers.Add(observer);
 }
        private void calcular()
        {
            //Declaramos una lista de operaciones la cual contendrá la información de la lista original.
            ObservableCollection <IOperacion> auxOperaciones = Operaciones;

            #region Calculo de Width
            int          i          = auxOperaciones.Count - 1;
            int          c          = 0;
            double       widthFinal = WidthAnillo;
            bool         banUltimaOperacionWidth = true;
            SubjectWidth subjectWidth            = new SubjectWidth();

            while (i >= 0)
            {
                if (auxOperaciones[i] is IObserverWidth)
                {
                    if (banUltimaOperacionWidth)
                    {
                        IObserverWidth ope = (auxOperaciones[i] as IObserverWidth);
                        //Conciderar que falta el if si es de nissei, tomar en cuenta el codigo de la clase AnilloViewModel Linea 1871
                        subjectWidth.Subscribe(ope, widthFinal);
                        banUltimaOperacionWidth = false;
                    }
                    else
                    {
                        IObserverWidth ope = (auxOperaciones[i] as IObserverWidth);
                        //Conciderar que falta el if si es de nissei, tomar en cuenta el codigo de la clase AnilloViewModel Linea 1886.
                        subjectWidth.Subscribe(ope);
                        subjectWidth.Notify(c);
                    }
                    c += 1;
                }
                i = i - 1;
            }
            #endregion

            #region Calculo de diámetro
            i = auxOperaciones.Count - 1;
            c = 0;
            SubjectDiametro subjectDiametro            = new SubjectDiametro();
            bool            banUltimaOperacionDiametro = true;


            double mediaGap = GapAnillo;

            while (i >= 0)
            {
                if (auxOperaciones[i] is IObserverDiametro)
                {
                    if (banUltimaOperacionDiametro)
                    {
                        var operacion = (IObserverDiametro)auxOperaciones[i];
                        if (!operacion.GapFijo)
                        {
                            operacion.Gap = mediaGap;
                        }

                        subjectDiametro.Subscribe(operacion, DiametroAnillo);
                        banUltimaOperacionDiametro = false;
                    }
                    else
                    {
                        var operacion = (IObserverDiametro)auxOperaciones[i];
                        if (!operacion.GapFijo)
                        {
                            operacion.Gap = mediaGap;
                        }

                        subjectDiametro.Subscribe(operacion);
                        subjectDiametro.Notify(c);
                    }
                    c += 1;
                }
                i = i - 1;
            }
            #endregion

            #region Calculo de Thickness
            i = auxOperaciones.Count - 1;
            c = 0;
            double mediaThickness = ThicknessAnillo;

            SubjectThickness subjectThickness            = new SubjectThickness();
            bool             banUltimaOperacionThickness = true;
            while (i >= 0)
            {
                if (auxOperaciones[i] is IObserverThickness)
                {
                    if (banUltimaOperacionThickness)
                    {
                        subjectThickness.Subscribe(auxOperaciones[i] as IObserverThickness, mediaThickness);
                        banUltimaOperacionThickness = false;
                    }
                    else
                    {
                        subjectThickness.Subscribe(auxOperaciones[i] as IObserverThickness);
                        subjectThickness.Notify(c);
                    }
                    c += 1;
                }

                i = i - 1;
            }
            #endregion

            //Asignamos el número de operación.
            SetNumberOperation();

            //Psamos la información de la lista de operaciones en la que se trabajó a la lista de operaciones original.
            Operaciones = new ObservableCollection <IOperacion>();
            Operaciones = auxOperaciones;
            NotifyChange("Operaciones");
        }