GetCustomerResponse ICustomerServiceBusiness.GetResultCustomerDTOs(ClientesDTO prmsearchClientesDTO) { GetCustomerResponse customerResponse = new GetCustomerResponse(); customerResponse.status = new Status(); CacheHandler lch_cache; Dictionary <ClientesDTO, GetCustomerResponse> ld_data; GetCustomerResponse customerResponse2 = null; bool lb_valCache; lch_cache = new CacheHandler(); ld_data = (Dictionary <ClientesDTO, GetCustomerResponse>)lch_cache.GetCache("getClientes"); lb_valCache = false; if (ld_data != null) { foreach (ClientesDTO lc_key in ld_data.Keys) { if (lc_key.Equals(prmsearchClientesDTO)) { lb_valCache = ld_data.TryGetValue(lc_key, out customerResponse2); break; } } } if (lb_valCache) { customerResponse = customerResponse2; } else { try { //validar tipos de datos List <ClientesDTO> lstClientesDTO; lstClientesDTO = null; ClientesDAL ClientesDAL = new ClientesDAL(); lstClientesDTO = ClientesDAL.GetClientes(prmsearchClientesDTO); if (lstClientesDTO != null) { if (lstClientesDTO.Count > 0) { List <GetCustomerResult> GetCustomerResult = new List <GetCustomerResult>(); foreach (ClientesDTO clientesDTO in lstClientesDTO) { GetCustomerResult lCustomer; List <CreditCardGet> lcreditCard = new List <CreditCardGet>(); lCustomer = new GetCustomerResult { IdType = clientesDTO.CodTypeIdent, FirstName = clientesDTO.FName, LastNames = clientesDTO.LName, IdNumber = clientesDTO.CustID, PhoneNumber = clientesDTO.PhoneNumber, Email = clientesDTO.Email, Address = clientesDTO.Address, Country = clientesDTO.Country, City = clientesDTO.City, User = clientesDTO.User, Password = clientesDTO.Password, StatusCustomer = clientesDTO.Status, IdUser = clientesDTO.ID }; if (clientesDTO.LCreditCard != null) { foreach (CreditCardDTO creditCardDTO in clientesDTO.LCreditCard) { CreditCardGet creditCard = new CreditCardGet { CardName = creditCardDTO.CardName, ExpirationDate = creditCardDTO.ExpirationDate, Type = creditCardDTO.Type, Number = creditCardDTO.Number, SecurityCode = creditCardDTO.SecurityCode, StatusCard = creditCardDTO.StatusCard }; lcreditCard.Add(creditCard); lCustomer.CreditCard = creditCard; } } GetCustomerResult.Add(lCustomer); } customerResponse.result = GetCustomerResult.ToArray(); customerResponse.status.CodeResp = "0"; customerResponse.status.MessageResp = "Proceso satisfactorio"; if (ld_data == null) { ld_data = new Dictionary <ClientesDTO, GetCustomerResponse>(); } ld_data.Add(prmsearchClientesDTO, customerResponse); lch_cache.AddCache("getClientes", ld_data); } else { customerResponse.status.CodeResp = "01"; customerResponse.status.MessageResp = "no existen datos...."; } } else { customerResponse.status.CodeResp = "01"; customerResponse.status.MessageResp = "error...."; } } catch (Exception ex) { customerResponse.status.CodeResp = "01"; customerResponse.status.MessageResp = "Error en la...."; Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, "ERROR EN LA CAPA DE NEGOCIO CustomerService:GetCustomer"); Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, " :: " + ex.Message); //throw ex; } } return(customerResponse); }