public UrlTemporal ComprobarUrlTemporal(UrlTemporal url) { // UrlTemporal/"IdEmpresa"/"id"/"OtroIDDeSerNecesario"/ //decodificar guid para ver el idEmpresa a consultar var urlValidaRjindael = ConvertirCaracteresOriginales(url.GuidUrl); var stringDecodificado = RijndaelSimple.Decrypt ( urlValidaRjindael, passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize ); string[] separadas = stringDecodificado.Split('/'); url.IdEmpresa = Convert.ToInt16(separadas[2]); switch (separadas[0]) { case "CambioPassword": url.TipoUrlTemporal = TipoUrlTemporal.CambioPassword; break; case "ExpedienteDigital": url.TipoUrlTemporal = TipoUrlTemporal.ExpedienteDigital; break; } //la linea anterior depende de que tipo de liga sea //comprobar que el guid efectivamente existe en la base de datos url = iUrlTemporalRepositorio.EsUrlValida(url); if (url.IdUrl == 0) { url = iUrlTemporalRepositorio.InactivarUrl(url); throw new ErrorUrlTemporal(); } url.Ids = new List <int>(); for (int i = 3; i < separadas.Count(); i++) { url.Ids.Add(Convert.ToInt32(separadas[i])); } //marcar como url usada. url = iUrlTemporalRepositorio.InactivarUrl(url); return(url); //en caso que no exista en base de datos o haya algo malo con el guid //enviar excepciones }