/// <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); }
/// <summary> /// /// </summary> /// <param name="observer"></param> /// <param name="WidthFinal"></param> public void Subscribe(IObserverWidth observer, double WidthFinal) { observer.WidthOperacion = WidthFinal; Observers.Add(observer); }
/// <summary> /// /// </summary> /// <param name="observer"></param> public void Unsubscribe(IObserverWidth observer) { Observers.Remove(observer); }
/// <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"); }