public ResultadoActualizarDirecciones Actualizar(DescripcionServicio descripcionServicio, List <DireccionServidor> listaDireccionServidor, bool ignorarSiNoExistePlantilla = true, bool backup = true)
        {
            List <ActualizarDireccionServidorInput> listaDireccionServidorInput = new List <ActualizarDireccionServidorInput>();

            foreach (var direccion in listaDireccionServidor)
            {
                listaDireccionServidorInput.Add(new ActualizarDireccionServidorInput {
                    NombreServidor = direccion.NombreServidor, DireccionIp = direccion.DireccionIp
                });
            }

            return(Actualizar(descripcionServicio, listaDireccionServidorInput, ignorarSiNoExistePlantilla, backup));
        }
        public ResultadoActualizarDirecciones Actualizar(DescripcionServicio descripcionServicio, IList <ActualizarDireccionServidorInput> listaDireccionServidorInput, bool ignorarSiNoExistePlantilla = true, bool backup = true)
        {
            var plantilla      = ObtenerNombreArchivoPlantilla(descripcionServicio);
            var existePlantila = File.Exists(plantilla);

            if (ignorarSiNoExistePlantilla && !existePlantila)
            {
                return(new ResultadoActualizarDirecciones
                {
                    Success = true,
                    Observacion = "Sin Plantilla. Actualizacion no realizada"
                });
            }

            if (!existePlantila)
            {
                return(new ResultadoActualizarDirecciones
                {
                    Success = false,
                    Error = $"No existe plantilla para el servicio. archivo:{plantilla}. servicio:{descripcionServicio.Nombre}",
                    Observacion = "Actualizacion Fallida. Plantilla no Encontrada"
                });
            }

            var porActualizar = new List <(ActualizarDireccionServidorInput direccionServidorInput, MarcadorServidor marcador)>();

            foreach (var direccionServidorInput in listaDireccionServidorInput)
            {
                var marcador = _proveedorMarcadores.ObtenerPorNombreServidor(direccionServidorInput.NombreServidor) ??
                               new MarcadorServidor
                {
                    NombreServidor      = direccionServidorInput.NombreServidor,
                    MarcadorDireccionIp = $"[[{direccionServidorInput.NombreServidor}_DireccionIp]]"
                };

                porActualizar.Add((direccionServidorInput, marcador));
            }

            return(ActualizarSync(descripcionServicio, plantilla, porActualizar, backup));
        }
 private ResultadoActualizarDirecciones ActualizarSync(DescripcionServicio descripcionServicio, string plantilla, List <(ActualizarDireccionServidorInput direccionServidorInput, MarcadorServidor marcador)> porActualizar, bool backup)