public bool Registrar(Proveedor obj) { if (!String.IsNullOrWhiteSpace(obj.Ruc)) //EVALUO CAMPOS OBLIGATORIOS { if (!proveedorRepository.Exists(obj.Ruc)) //EVALUO SI YA EXISTE { //Si tiene DNI, debe tener persona if (!String.IsNullOrWhiteSpace(obj.DniRl)) { if (obj.DniRlNavigation is null) { obj.DniRlNavigation = new Persona() { Dni = obj.DniRl, Tipo = "pro" }; } else { obj.DniRlNavigation.Dni = obj.DniRl; obj.DniRlNavigation.Tipo = "pro"; } PersonaRepository personaRepository = new PersonaRepository(); if (!personaRepository.Exists(obj.DniRlNavigation.Dni)) { personaRepository.Insert(obj.DniRlNavigation); } } //Primero verifico si se agrego de manera correcta a la DB, luego lo agrego a la Lista in Memory var Result = proveedorRepository.Insert(obj); return(Result); } else { throw new Exception(ExceptionMessageManager.ExceptionMessageProveedor.AlreadyExists(obj.Ruc)); } } else { throw new Exception(ExceptionMessageManager.ExceptionMessageVehiculo.KeyIsNull()); } }