Beispiel #1
0
        public void SubirTramo(string tramoDescripcion)
        {
            var tramo = this.Tramos.FirstOrDefault(x => x.Descripcion == tramoDescripcion);

            if (tramo != null)
            {
                int posicion = Tramos.IndexOf(tramo);
                if (posicion != 0)
                {
                    Tramos.Remove(tramo);
                    Tramos.Insert(posicion - 1, tramo);
                }
            }
        }
Beispiel #2
0
        public bool IsValid()
        {
            ErrorMessage = "";

            if (CantidadTramos == 0)
            {
                ErrorMessage += "Debe seleccionar por lo menos 1 tramo. " + System.Environment.NewLine;
            }

            foreach (TramoViewModel tramo in Tramos)
            {
                if (tramo.PuertoDesde.IDPuerto == tramo.PuertoHasta.IDPuerto)
                {
                    int tramoIndex = Tramos.IndexOf(tramo);
                    ErrorMessage += "Tramo invalido [" + tramoIndex + "] El puerto desde no puede ser el mismo que el puerto hasta." + System.Environment.NewLine;
                }
            }

            //Validar coherencia de tramos (los puertos deben ser A->B, B->C, C->A)
            //Tramos de la forma A->B, C->A son invalidos)
            try
            {
                TramoViewModel tramoAnterior = null;
                foreach (TramoViewModel tramo in Tramos)
                {
                    //Validar
                    if (tramoAnterior != null)
                    {
                        if (tramoAnterior.PuertoHasta.IDPuerto != tramo.PuertoDesde.IDPuerto)
                        {
                            //El armado de tramos es invalido, el [destino] del anterior deberia coincidir con el [desde] del actual
                            //Con 1 tramo invalido ya mostrar el msj de error
                            throw new Exception("El armado de tramos es inválido. Cada nuevo tramo debe tener como orígen el puerto de destino del tramo anterior");
                        }
                    }
                    tramoAnterior = tramo;
                }
            }
            catch (Exception ex)
            {
                ErrorMessage += ex.Message + System.Environment.NewLine;
            }

            //If error message is empty, object is valid
            return(string.IsNullOrEmpty(ErrorMessage));
        }