static RespuestaVertical MappingRespuestaVertical(string gescal) { if (gescal.Length < 37) { gescal = gescal.PadRight(37); } var respuesta = new RespuestaVertical(); var infoAdicional = gescal.Substring(17, gescal.Length - 17); respuesta.gescal37 = gescal; respuesta.addressNumber = GetStandardValue(gescal.Substring(12, 5)); respuesta.letraFinca = GetStandardValue(infoAdicional.Substring(6, 1)); respuesta.mano1 = GetStandardValue(infoAdicional.Substring(12, 4)); respuesta.mano2 = GetStandardValue(infoAdicional.Substring(16, 4)); SetDomicilio(respuesta, infoAdicional); SetBisDuplicado(respuesta, infoAdicional); SetBloque(respuesta, infoAdicional); SetPortalPuerta(respuesta, infoAdicional); SetEscalera(respuesta, infoAdicional); return(respuesta); }
static void SetPortalPuerta(RespuestaVertical respuesta, string infoAdicional) { var portalPuerta = infoAdicional.Substring(4, 2); if (!string.IsNullOrWhiteSpace(portalPuerta.Trim())) { if (portalPuerta.Contains("O") || portalPuerta.Contains("U")) { var tipo = portalPuerta.Substring(0, 1); var valor = portalPuerta.Substring(1, 1); switch (tipo) { case "O": respuesta.portalPuerta = $"Portal {valor}"; break; case "U": respuesta.portalPuerta = $"Puerta {valor}"; break; } } else { respuesta.portalPuerta = portalPuerta; } respuesta.portalPuertaId = portalPuerta; } }
static void SetEscalera(RespuestaVertical respuesta, string infoAdicional) { var escalera = infoAdicional.Substring(7, 2); if (!string.IsNullOrWhiteSpace(escalera.Trim())) { var escaleras = GetEscalera(); var valor1 = EvaluateEscalera(escaleras, escalera.Substring(0, 1)); var valor2 = EvaluateEscalera(escaleras, escalera.Substring(1, 1)); respuesta.escalera = $"{valor1} {valor2}"; respuesta.escaleraId = escalera; } }
static void SetBloque(RespuestaVertical respuesta, string infoAdicional) { var bloque = infoAdicional.Substring(1, 3); if (!string.IsNullOrWhiteSpace(bloque.Trim())) { var tipo = bloque.Substring(0, 1); var listaTrad = GetBloque(); if (listaTrad.Any(b => b.Code == tipo)) { respuesta.bloque = $"{listaTrad.First(b => b.Code == tipo).Name} {bloque.Substring(1, 2)}"; respuesta.bloqueId = bloque; } } }
static void SetBisDuplicado(RespuestaVertical respuesta, string infoAdicional) { var bis = infoAdicional.Substring(0, 1); var listaTrad = GetBisDuplicate(); if (!string.IsNullOrWhiteSpace(bis.Trim())) { if (listaTrad.Any(b => b.Code == bis)) { respuesta.bis = listaTrad.First(b => b.Code == bis).Name; } else { respuesta.bis = bis; } respuesta.bisId = bis; } }
Verticals MappingBasicInfoVertical(RespuestaVertical verticalResponse) { return(new Verticals() { Gescal37 = verticalResponse.gescal37, Block = verticalResponse.bloque, BlockId = verticalResponse.bloqueId, Bisduplicate = verticalResponse.bis, BisduplicateId = verticalResponse.bisId, Door = verticalResponse.portalPuerta, DoorId = verticalResponse.portalPuertaId, Floor = verticalResponse.planta, FloorId = verticalResponse.plantaId, Letter = verticalResponse.letraFinca, Stair = verticalResponse.escalera, StairId = verticalResponse.escaleraId, Hand1 = verticalResponse.mano1, Hand2 = verticalResponse.mano2, }); }
static void SetDomicilio(RespuestaVertical respuesta, string infoAdicional) { var domicilio = infoAdicional.Substring(9, 3); var listaTrad = GetPlanta(); if (!string.IsNullOrWhiteSpace(domicilio.Trim())) { respuesta.plantaId = domicilio; var domSinEspacios = domicilio.Trim(); if (domSinEspacios.Length == 2) { if (listaTrad.Any(b => b.Code == domSinEspacios)) { respuesta.planta = listaTrad.First(b => b.Code == domSinEspacios).Name; } } else { respuesta.planta = domicilio; } } }